提交时间:2023-08-14 11:57:23

运行 ID: 98060

#include <bits/stdc++.h> using namespace std; int n,k,x,ans=0; int a[200005],q[200005],f[200005]; void dfs(int t,int s){ if(t==0){ for(int i=s+1;i<=n;++i) f[i]=f[i-1]; for(int i=1;i<=n;++i){ for(int j=i;j<=n;++j){ ans=max(ans,q[j]-q[i-1]-x*(j-i+1-(f[j]-f[i-1])*2)); } } return; } for(int i=s+1;i<=n;++i){ f[i]=f[i-1]+1; dfs(t-1,i); f[i]--; } } int main(){ cin >> n >> k >> x; for(int i=1;i<=n;++i){ cin >> a[i]; q[i]=q[i-1]+a[i]; } dfs(k,0); cout << ans; return 0; }