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 mk make_pair
#define fs first
#define sc second
using namespace std;
typedef long long ll;
typedef long double ld;
ll f(ll x){
  ll tmp=0;
  while(x>0){
    tmp+=x%10;
    x/=10;
  }
  return tmp;
}
map <ll, int > mp;
int main(){
  ll n;
  while(cin>>n){
    mp.clear();
    ll tmp=1, x=n;
    while(x>0){
      tmp*=10;
      x/=10;
    }
//    cout<<tmp<<endl;1
    ll ans=1e9;
    x=0;
    while(1){
      x+=n;
      ans=min(ans, f(x));
      if(mp.count(x%tmp))
        break;
      ++mp[x%tmp];
    }
    cout<<ans<<endl;
  }
  return 0;
}