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: Accepted)

#include <bits/stdc++.h>
using namespace std;

int main(){
  int K;
  cin >> K;
  int score = 1;
  deque<pair<int,int>> dq;
  dq.push_back(make_pair(1,1));
  set<int> st;
  while (true){
    pair<int,int> a = dq.front();
    dq.pop_front();
    if (a.first == 0){
      cout << a.second << endl;
      return 0;
    }
    if (st.find(a.first) == st.end()){
      dq.push_front(make_pair((a.first*10)%K,a.second));
      dq.push_back(make_pair((a.first+1)%K, a.second+1));
      st.insert(a.first);
    }
  }
}