fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int n=100;
  5. vector<int>dp(n+1,10000000);
  6. dp[1]=0;
  7. for(int i=2;i<=n;i++){
  8. if(i%2==0)
  9. dp[i]=min(dp[i],1+dp[i/2]);
  10. if(i%3==0)
  11. dp[i]=min(dp[i],1+dp[i/3]);
  12. dp[i]=min(dp[i],1+dp[i-1]);
  13. }
  14.  
  15. for(int i=1;i<=100;i++){
  16. cout<<i<<" "<<dp[i]<<endl;
  17. }
  18.  
  19. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
1  0
2  1
3  1
4  2
5  3
6  2
7  3
8  3
9  2
10  3
11  4
12  3
13  4
14  4
15  4
16  4
17  5
18  3
19  4
20  4
21  4
22  5
23  6
24  4
25  5
26  5
27  3
28  4
29  5
30  4
31  5
32  5
33  5
34  6
35  7
36  4
37  5
38  5
39  5
40  5
41  6
42  5
43  6
44  6
45  5
46  6
47  7
48  5
49  6
50  6
51  6
52  6
53  7
54  4
55  5
56  5
57  5
58  6
59  7
60  5
61  6
62  6
63  5
64  6
65  7
66  6
67  7
68  7
69  7
70  8
71  9
72  5
73  6
74  6
75  6
76  6
77  7
78  6
79  7
80  6
81  4
82  5
83  6
84  5
85  6
86  7
87  6
88  7
89  8
90  5
91  6
92  7
93  6
94  7
95  8
96  6
97  7
98  7
99  6
100  7