Algorithm


A. Reachable Numbers
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Let's denote a function f(x)�(�) in such a way: we add 11 to x, then, while there is at least one trailing zero in the resulting number, we remove that zero. For example,

  • f(599)=6�(599)=6599+1=600606599+1=600→60→6;
  • f(7)=8�(7)=87+1=87+1=8;
  • f(9)=1�(9)=19+1=1019+1=10→1;
  • f(10099)=101�(10099)=10110099+1=10100101010110099+1=10100→1010→101.

We say that some number y is reachable from x if we can apply function f to x some (possibly zero) times so that we get y as a result. For example, 102102 is reachable from 1009810098 because f(f(f(10098)))=f(f(10099))=f(101)=102�(�(�(10098)))=�(�(10099))=�(101)=102; and any number is reachable from itself.

You are given a number n; your task is to count how many different numbers are reachable from n.

Input

The first line contains one integer n (1n1091≤�≤109).

Output

Print one integer: the number of different numbers that are reachable from n.

Examples
input
Copy
1098
output
Copy
20
input
Copy
10
output
Copy
19
Note

The numbers that are reachable from 10981098 are:

1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,1098,10991,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,1098,1099.

 

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming

#include <bits/stdc++.h>

using namespace std;

int n;
set<int> st;

int main() {
  scanf("%d", &n);

  int res = 0;
  while(st.count(n) != 1) {
    st.insert(n);
    n += 1;
    while(n % 10 == 0)
      n /= 10;
  }

  printf("%d\n", int(st.size()));

  return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
1098

Output

x
+
cmd
20
Advertisements

Demonstration


Codeforces Solution Reachable Numbers ,A. Reachable Numbers-Solution in C, C++, Java, Python

Previous
Codeforces solution 1080-B-B. Margarite and the best present codeforces solution
Next
CodeChef solution DETSCORE - Determine the Score CodeChef solution C,C+