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 int short
#define min(x, y) (x < y ? x : y)
int dp[505][100005][2];
int k;
int solve(int idx, int md, bool f){
  if(idx == 500 && md != 0)
    return 6000;
  if(idx == 500)
    return (f == 1 ? 0 : 6000);
  int &ret = dp[idx][md][f];
  if(~ret)
    return ret;
  ret = 6000;
  for(int i = 0; i < 10; i++)
    ret = min(ret , i + solve(idx + 1,(md * 10 + i)%k,f | (i > 0)));
  return ret;
}
int32_t main(){
  memset(dp, -1, sizeof dp);
  cin >> k;
  cout << solve(0,0,0) << '\n';
}