明明代码运行停止工作却AC了,在第15行加一个if(!q.empty())的判断就能运行了,但是第六个点WA,离谱。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,m,s[1000010],ans=0,a[1000010];
deque<int> q;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
s[i]=s[i-1]+a[i];
}
for(int i=1;i<=n;i++){
if(!q.empty()&&q.front()<=q.back()&&i-m>q.front()) q.pop_front();
ans=max(ans,s[i]-s[q.front()]);
while(!q.empty()&&q.front()<=q.back()&&s[q.back()]>=s[i]) q.pop_back();
q.push_back(i);
}
if(ans<0) cout<<"0";
else cout<<ans;
}
其实这是一道被诅咒的题