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

运行 ID: 98058

#include <bits/stdc++.h> using namespace std; int n,k,x; int a[105]; int ans=0; void f(int x1,int x2,int d){ if(d>n){ // cout<<x1<<" "<<x2<<endl; int s[105]={0},s1=0; for(int i=1;i<=n;i++){ s[i]=s[i-1]+a[i]; } for(int l=1;l<=n;l++){ for(int r=l;r<=n;r++){ s1=max(s1,s[r]-s[l-1]); } } ans=max(ans,s1); return; } if(x2+1>n-k){ a[d]=a[d]+x; f(x1+1,x2,d+1); a[d]=a[d]-x; } else if(x1+1>k){ a[d]=a[d]-x; f(x1,x2+1,d+1); a[d]=a[d]+x; } else{ a[d]=a[d]+x; f(x1+1,x2,d+1); a[d]=a[d]-x; a[d]=a[d]-x; f(x1,x2+1,d+1); a[d]=a[d]+x; } } int main(){ cin>>n>>k>>x; for(int i=1;i<=n;i++){ cin>>a[i]; } f(0,0,1); cout<<ans<<endl; return 0; }