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;

const int maxn= 100000 + 10;
typedef long long LL;
bool vis[maxn];
int f[maxn], K;

int main(){

	int K;scanf("%d", &K);
	for (LL pw=1; !vis[pw]; pw= pw*10%K) vis[pw] = true;
	if ( vis[0] ) {printf("1\n"); return 0;}
	for (int i=1,lst=1; i<=K; i++)
		if ( vis[i]){ f[i] = 1; lst=i;}
			else
				f[i] = f[lst] + f[i-lst];
	printf("%d\n", f[K]);
	return 0;
}