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 MAXN 100005
using namespace std;
inline int read(){
	int x=0,f=1;
	char ch=getchar();
	while (ch<'0'||ch>'9'){
		if (ch=='-') f=-1;
		ch=getchar();
	}
	while (ch>='0'&&ch<='9'){
		x=(x<<1)+(x<<3)+(ch^'0');
		ch=getchar();
	}
	return x*f;
}
int d[MAXN],vis[MAXN];
queue<int>Q;
inline void Push(int x,int pre,int len){
	d[x]=d[pre]+len;
	Q.push(x);
}
int main(){
	int K=read();
	Q.push(1),d[1]=1;
	while (Q.size()){
		int x=Q.front();Q.pop();
		if (!vis[x]) vis[x]=true;
		else continue;
		if (!x){
			printf("%d\n",d[x]);
			return 0;
		}
		Q.push((x+1)%K);
		Push((x+1)%K,x,1);
		Push((x*10)%K,x,0);
	}
}