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;

int k;
int memo[100005] = {0};
deque<int> dq;

int solve();

int main() {
  cin >> k;
  for(int i = 0; i < k; ++i) memo[i] = 1000000;
  cout << solve() << endl;
  return 0;
}

int solve() {
  memo[1] = 1;
  dq.push_back(1);
  while(dq.size() > 0) {
    int now = dq.front(), nf, nb;
    dq.pop_front();
    nf = now * 10 % k;
    nb = (now + 1) % k;
    if(memo[nf] > memo[now] + 1) {
      memo[nf] = memo[now];
      dq.push_front(nf);
    }
    if(memo[nb] > memo[now] + 1) {
      memo[nb] = memo[now] + 1;
      dq.push_back(nb);
    }
  }
  return memo[0];
}