Problem:
Score : 700 points

Problem Statement

Find the smallest possible sum of the digits in the decimal notation of a positive multiple of K.

Constraints

2 \leq K \leq 10^5

K is an integer.

Input

Input is given from Standard Input in the following format:

K

Output

Print the smallest possible sum of the digits in the decimal notation of a positive multiple of K.

Sample Input 1

6

Sample Output 1

3

12=6×2 yields the smallest sum.

Sample Input 2

41

Sample Output 2

5

11111=41×271 yields the smallest sum.

Sample Input 3

79992

Sample Output 3

36

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

#include <bits/stdc++.h>
#define INT long long int
#define MOD (INT)(6e18)
using namespace std;
INT n, sum, ans;
inline INT f(INT x)
{
    INT ret = 0;
    while( x )
    {
        ret += x%10;
        x/=10;
    }
    return ret;
}
int main()
{
    ios::sync_with_stdio(false);
    cin>>n;
    while( n%2 == 0 ) n/=2;
    while( n%5 == 0 ) n/=5;
    INT x = 0, t = 1, N = n, N2 = n;
    while( N ) ans += N%10, N/=10;
    do{
        sum = (sum+t)%n;
        x++;
        t = (t*10)%n;
    } while( sum );
    ans = min(ans, x);
    for(int i = 1, j = N2 ; i < 70000000 and N2+j > N2 ; i++ )
        N2+=j, ans = min(ans, f(N2));
    cout<<ans<<endl;
    return 0;
}