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: Time Limit Exceeded)

#include<stdio.h>
int dp[100000];
int solve(int n){
	int i,j,k;
	if(!n) return 0;
	if(n==1||n==100000) return 1;
	for(i=0;i<n;i++){
		dp[i]=1<<29;
	}
	for(int m=1;m<10;m++){ // won't zero
		if(dp[m*n/10]>m*n%10){
			dp[m*n/10]=m*n%10;
		}
	}
	for(bool update=true;update;){
		update=false;
		for(int m=0;m<10;m++){
			for(i=0;i<n;i++){
				int to=i+(m*n);
				if(dp[to/10]>dp[i]+to%10){
					dp[to/10]=dp[i]+to%10;
					update=true;
				}
			}
		}
	}
	return dp[0];
}
int main(){
	int n;
	/*for(n=1;n<=100000;n++){
		printf("%d: %d\n",n,solve(n));
	}*/
	scanf("%d", &n);
	printf("%d\n", solve(n));
}