description
solution:
作为提高组round 3的T1,还是比较良心的
考虑先把x中的水加入x+1中
现在如果不进行将x+1加入x+2中,那么这一次的操作就浪费了,显然不优
因此倒水总是一个连续的区间
于是就求一个长度为k+1的连续子序列的和,前缀和优化就行了
code:
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int n,k,a[N];
inline int read()
{
int s=0,w=1; char ch=getchar();
for(;!isdigit(ch);ch=getchar())if(ch=='-')w=-1;
for(;isdigit(ch);ch=getchar())s=(s<<1)+(s<<3)+(ch^48);
return s*w;
}
int main()
{
n=read(),k=read();
for(int i=1;i<=n;++i)
a[i]=read(),a[i]+=a[i-1];
int ans=0;
for(int i=k+1;i<=n;++i)
ans=max(ans,a[i]-a[i-k-1]);
cout<<ans;
return 0;
}