Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
98375 CSYZ_HeYC 早凉与序列4 C++ 通过 100 26 MS 10620 KB 872 2023-08-14 16:35:57

Tests(60/60):


#include<bits/stdc++.h> using namespace std; #define ll long long template<typename T>inline void read(T &ret){ ret=0;T fh=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-')fh=-1;ch=getchar();} while(isdigit(ch))ret=ret*10+(ch^48),ch=getchar(); ret*=fh; } const int N=2e5+5; int t,n,k; ll a[N],x,sum[N],ans,b; struct node{ ll val;int id; inline bool operator < (const node X)const{ return val>X.val; } }; int main(){ t=1; while(t--){ priority_queue<node>q; q.push({0,0}); read(n);read(k);read(x); if(x<0)k=n-k,x=-x;ans=b=0; for(int i=1;i<=n;++i){ read(a[i]); sum[i]=sum[i-1]+a[i]-x; q.push({sum[i]+2*i*x,i}); while(i-q.top().id>k)q.pop(); ans=max(ans,sum[i]+2*x*i-q.top().val); if(i>=k){ b=min(b,sum[i-k]); ans=max(ans,sum[i]-b+2*x*k); } } printf("%lld\n",ans); } return 0; }


测评信息: