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;
#define ll long long 
ll dp[155][100005][2];
ll len=150;
ll num ;

ll fun(ll cur=0, ll mod=0, ll flag=0){
	if(cur == len){
		return ((flag && mod==0) ? 0 : 1e6);
	}
	
	if(dp[cur][mod][flag]!=-1){
		return dp[cur][mod][flag];
	}
	
	ll ans = 1e6;
	for(ll i=0 ; i<=9 ; i++){
		ans = min(ans, i + fun(cur+1, (mod*10+i)%num, (flag |(i>0)) ));
	}
	
	return dp[cur][mod][flag] = ans;
}

int main(){
	cin>>num;
	for(int i=0 ; i<=154 ; i++){
		for(int j=0 ; j<=num ; j++){
			dp[i][j][0] = dp[i][j][1] = -1; 
		}
	}
	cout<<fun();
	return 0;
}