Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int INF=2e9;
  4. int a,m,mx=-INF;
  5. int ar[2001],dp[2001];
  6. int time(int i){
  7. //base case
  8. if(i==0) return 0;
  9. if(i<0) return -INF;
  10. //already solve
  11. if(dp[i]!=-INF) return dp[i];
  12. //recursive step
  13. for(int j=1;j<=m;j++){
  14. dp[i]=max(dp[i],time(i-j)+ar[j]);
  15. }
  16. return dp[i];
  17. }
  18. int main(){
  19.  
  20. scanf("%d %d",&a,&m);
  21. for(int i=1;i<=a;i++) dp[i]=-INF;
  22. for(int i=1;i<=m;i++){
  23. scanf("%d",&ar[i]);
  24. }
  25. printf("%d",time(a));
  26.  
  27. return 0;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement