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>
using namespace std;
map<long long,int> dp;
int getDigsum(long long k)
{
    int sum = 0;
    while(k)
        sum += k % 10,k /= 10;
    return sum;
}
long long k;
int allPossible(long long cur)
{
    if(cur >= 1e15)
        return 100;
    if(cur % k == 0 && cur != 0)
        return getDigsum(cur);

    int third = 100;
    if(cur != 0)
        third = allPossible(cur*10 + 0);
    return min(allPossible(cur*10 + 1),min(allPossible(cur*10 + 2),third));
}
int main()
{

    cin >> k;
    cout << min(getDigsum(k),allPossible(0));
}