提交时间:2023-08-14 14:48:29

运行 ID: 98308

#include <bits/stdc++.h> using namespace std; typedef long long ll; ll n,k,x; ll a[105]; ll ans=0; void f(ll x1,ll x2,ll d){ if(d>n){ // cout<<x1<<" "<<x2<<endl; ll s[105]={0},s1=0; for(ll i=1;i<=n;i++){ s[i]=s[i-1]+a[i]; } for(ll l=1;l<=n;l++){ for(ll 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(ll i=1;i<=n;i++){ cin>>a[i]; } f(0,0,1); cout<<ans<<endl; return 0; }