fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using ll= long long;
  4.  
  5. void helper() {
  6. int n;
  7. cin>>n;
  8. int y,x,z,b;
  9. cin>>y>>x>>z>>b;
  10. vector<vector<int>> v(n+1, vector<int>(4,1000000000));
  11. v[n][0]=0;
  12. v[n][1]=0;
  13. v[n][2]=0;
  14. v[n][3]=0;
  15. for(int i=n; i>1; i--){
  16. int a= min(v[i][0], min(v[i][1], min(v[i][2], v[i][3])));
  17. if(a==1000000000) continue;
  18. for(int j=0; j<4; j++){
  19. if(j==0) v[i-1][j]= min(v[i-1][j], a+y);
  20. else if(j==1 && i%7==0){
  21. v[i/7][j]= min(v[i/7][j], a+x);
  22. }
  23. else if(j==2 && i%3==0){
  24. v[i/3][j]= min(v[i/3][j], a+z);
  25. }
  26. else if(j==3 && i%5 ==0){
  27. v[i/5][j]= min(v[i/5][j], a+b);
  28. }
  29. }
  30. }
  31. // for(int j=0; j<4; j++)
  32. // {
  33. // for(int i=1; i<=n; i++){
  34. // if(v[i][j]==1000000000) cout<<-1<<" ";
  35. // else cout<<v[i][j]<<" ";
  36. // }
  37. // cout<<endl;
  38. // }
  39. cout<<min(v[1][0], min(v[1][1], min(v[1][2], v[1][3])))<<endl;
  40. }
  41.  
  42. int main() {
  43. int t=1;
  44. // cin>>t;
  45. while(t--){
  46. helper();
  47. }
  48. return 0;
  49. }
  50.  
Success #stdin #stdout 0s 5292KB
stdin
15
100 1 500 10000000
stdout
201