Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
98096 | daichenxi | 早凉与序列4 | C++ | 解答错误 | 30 | 78 MS | 116976 KB | 529 | 2023-08-14 12:17:28 |
#include <bits/stdc++.h> #define int long long using namespace std; const int maxn=5e3+10; int n,k,x,a[maxn],f[maxn][maxn]; signed main() { cin>>n>>k>>x; for(int i=1;i<=n;i++) cin>>a[i],a[i]-=x; for(int i=1;i<=n;i++) f[i][0]=max(f[i-1][0]+a[i],0ll); int ans=0; for(int i=1;i<=n;i++) for(int j=1;j<=min(k,i);j++) { if(i==j) f[i][j]=max(f[i-1][j-1]+a[i]+x*2,0ll); else f[i][j]=max(max(f[i-1][j-1]+a[i]+x*2,f[i-1][j]+a[i]),0ll); if(i<=n-k+j) ans=max(ans,f[i][j]); } cout<<ans; return 0; }