#include <stdio.h>
#include <deque>
#define max(a,b) ((a)>(b)?(a):(b))
int n,m,p,s[500003],ans=-(1<<30);std::deque<int> q;
main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&p),s[i]=s[i-1]+p;
for(int i=1;i<=n;i++){
while(q.size()&&q.front()+m<i) q.pop_front();
while(q.size()&&s[q.back()]>=s[i]) q.pop_back();
ans=max(ans,s[i]-s[q.front()]);q.push_back(i);
}
printf("%d\n",ans);return 0;
}
这份代码在vscode里输出不了结果,但提交后却过了,求解释