Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
98371 CSYZ_GaoSL 早凉与序列4 C++ 解答错误 80 25 MS 4180 KB 763 2023-08-14 16:28:46

Tests(53/54):


#include<bits/stdc++.h> using namespace std; #define ll long long #define N 200005 ll sum[N]; ll a[N]; deque<int>q; int main(){ int n,k; ll x; scanf("%d%d%lld",&n,&k,&x); if(x<0)x=-x,k=n-k; for(int i=1;i<=n;i++) scanf("%lld",&a[i]),a[i]-=x,sum[i]=sum[i-1]+a[i]; ll ans=0,minn=0; for(int i=1;i<=n;i++){ if(i>=k){ minn=min(minn,sum[i-k]); ans=max(ans,sum[i]-minn+(ll)2*x*k); } if(!q.empty()&&i-q.front()+1>k)q.pop_front(); while(!q.empty()&&sum[q.back()]+(ll)2*q.back()*x>sum[i]+(ll)2*i*x)q.pop_back(); q.push_back(i); ans=max(ans,sum[i]+(ll)2*i*x-(sum[q.front()]+(ll)2*q.front()*x)); } printf("%lld",ans); return 0; }


测评信息: