این قسمت میخواستم سوال تاپ بزارم ولی نشد خوب ترجمه کنم ایشاالهه از کانتست بعد این کارو میکنم ولی این کانتست سوال C رو میدم ایدش با dp هستش خیلی سوال با حالیه روش فکر کنیدجوابو بزارید ممنون
اگه حل کردید جواب رو بزارید ممنون:)
جواب:کد C++
#include<bits/stdc++.h> using namespace std; #define ll long long const int N=5e3+5; ll x[N],sum[N],dp[N][N]; int n,m,k; int main(){ cin>>n>>m>>k; for(int i=1;i<=n;i++){ cin>>x[i]; sum[i]=sum[i-1]+x[i]; } for(int i=m;i<=n;i++){ for(int j=1;j<=k;j++){ dp[i][j]=max(dp[i-1][j],dp[i-m][j-1]+sum[i]-sum[i-m]); } } cout<<dp[n][k]<<endl; return 0; }