Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
98166 CSYZZhangZH 早凉与序列4 C++ 解答错误 40 26 MS 6524 KB 910 2023-08-14 12:24:31

Tests(35/38):


#include<bits/stdc++.h> #define int long long using namespace std; const int N=2e5+5; int a[N],b[N],c[N],s[N],ans,sum,l,n,k,x; signed main(){ ios::sync_with_stdio(0); cin>>n>>k>>x; for(int i=1;i<=n;++i){ cin>>a[i]; b[i]=a[i]+x; c[i]=a[i]-x; } l=1; for(int i=1;i<=n;++i){ sum+=b[i]; if(i-l+1>k) sum-=b[l],l++; if(sum<0) sum=0,l=i+1; ans=max(ans,sum); } l=1; sum=10000000000000000; if(x>=0){ for(int i=1;i<=n;++i) s[i]=s[i-1]+c[i]; for(int i=1;i<=n;++i){ if(i-k<0) continue; sum=min(s[i-k],sum); ans=max(ans,s[i]-sum+x*k*2); } }else{ k=n-k; for(int i=1;i<=n;++i) s[i]=s[i-1]+b[i]; for(int i=1;i<=n;++i){ if(i-k<0) continue; sum=min(s[i-k],sum); ans=max(ans,s[i]-sum-x*k*2); } } cout<<ans<<endl; return 0; }


测评信息: