Problem:
Score : 300 points

Problem Statement

Find the maximum possible sum of the digits (in base 10) of a positive integer not greater than N.

Constraints

1\leq N \leq 10^{16}

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the maximum possible sum of the digits (in base 10) of a positive integer not greater than N.

Sample Input 1

100

Sample Output 1

18

For example, the sum of the digits in 99 is 18, which turns out to be the maximum value.

Sample Input 2

9995

Sample Output 2

35

For example, the sum of the digits in 9989 is 35, which turns out to be the maximum value.

Sample Input 3

3141592653589793

Sample Output 3

137

Solution in C (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<stdio.h>

int nn[51]={0},ans=0;

int solve(int keta,int han,int tuduki){
//	puts("OK");
	if(keta==-1)return 1;
	if(han==1){
		int tmp=tuduki+9*(keta+1);
		if(tmp>ans)ans=tmp;
		return 0;
	}
	else{
		solve(keta-1,0,tuduki+nn[keta]);
		if(nn[keta]!=0||keta!=0){
			solve(keta-1,1,tuduki+nn[keta]-1);
		}
		return 0;
	}
}

int main(){
	long long n;
	scanf("%lld",&n);
	int keta=0,i;
	while(n>0){
		nn[keta]=n%10;
		n=(n-nn[keta])/10;
		keta++;
	}
	//for(i=0;i<50;i++)printf("%d,",nn[i]);
	solve(50,0,0);
	printf("%d\n",ans);
	return 0;
}