Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- const long long Maxx=-1000000000000000000;
- using namespace std;
- int n,t,k;
- long long dp[1001][3501];
- long long a[3501];
- int main()
- {
- cin>>n>>t>>k;
- dp[1][0]=Maxx;
- for(int i=1;i<=n;++i)
- cin>>dp[1][i],a[i]=dp[1][i],dp[1][i]=max(dp[1][i],dp[1][i-1]);
- for(int i=2;i<=t;++i)
- for(int j=1;j<=n;++j)
- dp[i][j]=Maxx;
- for(int i=2;i<=t;++i)
- {
- for(int j=k*(i-1)+1;j<=n;++j)
- dp[i][j]=dp[i-1][j-k]+a[j];
- for(int j=k*(i-1)+2;j<=n;++j)
- dp[i][j]=max(dp[i][j],dp[i][j-1]);
- }
- cout<<dp[t][n];
- return 0;
- }
Add Comment
Please, Sign In to add comment