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 <cstdio>
#include <iostream>
#include <cmath>
#include <cstring>
#include <sstream>
#include <algorithm>
#include <cstdlib>
#include <map>
#include <queue>
#include <utility>
#include <vector>
#include <set>
#include <memory.h>
#include <iomanip>
#include <bitset>
#include <list>
#include <stack>
#include <deque>

using namespace std;

#define mod 1000000007
#define pi atan(1) * 4

int sum(int n)
{
	int ans = 0;
	for(int i = 0; i < 10; i++){
		if(n == 0) break;
		ans += n % 10;
		n /= 10;
	}
	return ans;
}

int main()
{
	int k;
	cin >> k;
	int ans = sum(k);
	for(int i = 0; i < 1000; i++){
		int kk = k;
		int r[10] = {0, 1, 5, 1, 25, 2, 2, 3, 125, 1};
		int nextnum = 0;
		for(int j = 0; j < 6; j++){
			if(k == 0) break;
			// cout << sum(kk * r[k % 10]) << endl;
			if(k % 10 != 0 && sum(kk * r[k % 10]) < ans){
				ans = sum(kk * r[k % 10]);
				nextnum = kk * r[k % 10];
			}
			k /= 10;
		}
		// cout << nextnum << endl;
		if(nextnum == 0) break;
		k = nextnum;
	}
	cout << ans << endl;
	return 0;
}