josiftepe

Untitled

Nov 7th, 2020
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <fstream>
  4. using namespace std;
  5. const int MOD = 1e9 + 7;
  6. const int INF = 2e9 + 10;
  7. const int maxn = 1e6 + 5;
  8. int n;
  9. int dp[maxn];
  10. int rec(int number) {
  11.     if(number == 0) {
  12.         return 0;
  13.     }
  14.     if(dp[number] != -1) {
  15.         return dp[number];
  16.     }
  17.     int ret = INF;
  18.     int tmp = number;
  19.     while(tmp > 0) {
  20.         int digit= tmp % 10;
  21.        
  22.         if(number - digit >= 0 and digit > 0)
  23.             ret = min(ret, rec(number - digit) + 1);
  24.         tmp /= 10;
  25.     }
  26.     dp[number] = ret;
  27.     return ret;
  28. }
  29. int main(){
  30.     cin >> n;
  31.     for(int i = 0; i <= n; ++i) {
  32.         dp[i] = -1;
  33.     }
  34.     cout << rec(n) << endl;
  35. }
  36. //869167734
  37. //869167734
  38.  
Advertisement
Add Comment
Please, Sign In to add comment