Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int INF=2e9;
- int a,m,mx=-INF;
- int ar[2001],dp[2001];
- int time(int i){
- //base case
- if(i==0) return 0;
- if(i<0) return -INF;
- //already solve
- if(dp[i]!=-INF) return dp[i];
- //recursive step
- for(int j=1;j<=m;j++){
- dp[i]=max(dp[i],time(i-j)+ar[j]);
- }
- return dp[i];
- }
- int main(){
- scanf("%d %d",&a,&m);
- for(int i=1;i<=a;i++) dp[i]=-INF;
- for(int i=1;i<=m;i++){
- scanf("%d",&ar[i]);
- }
- printf("%d",time(a));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement