#include <iostream>
#include <deque>
using namespace std;
const int N=1000010;
int n,k,a[N],ans=0;
deque <int> q;
signed main(){
cin>>n>>k;
for(int i=1;i<=n;++i){
cin>>a[i];
a[i]=a[i]+a[i-1];
}
q.push_back(0);
for(int i=1;i<=n;++i){
while(!q.empty()&&q.front()<i-k){
q.pop_front();
}
while(!q.empty()&&a[i]<=a[q.back()]){
q.pop_back();
}
q.push_back(i);
ans=max(ans,a[i]-a[q.front()]);
}
cout<<ans;
return 0;
}
这份代码能过,但
hack
in:
5 2
-1 -2 -3 -4 -5
out:
0
题目中“请你帮他从这
n
n 小块中找出连续的
k
(
1
≤
k
≤
m
)
k(1≤k≤m) 块蛋糕,使得其上的总幸运值最大。”
说明必须吃1个及以上,所以hack的答案应为-1