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++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<stdio.h>

int main()
{
    long n, check = 1;
    int ans=0,i,flag=0;
    scanf("%ld", &n);
    for (i = 0; i < 100; i++)
    {
        check = check * 10;
        if (n < check)
        {
            ans += (n-(n%(check/10))) / (check / 10);
            if (flag == 1)
                ans--;
            break;
        }
        else
        {
            ans += 9;
            if (n%check != 9)
                flag = 1;
        }
    }
    printf("%d", ans);
    return 0;
}