原题:P1714
自己觉得贪心思路没有问题,找了几个讨论区的hack也都过了,交上去 #2#3WA。
如果有问题希望有dalao指出QWQ
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int n, m, tot, ans=-1e9, l, r;
int dp[500005];
int sum(int l, int r){
return dp[r]-dp[l-1];
}
int main(){
scanf("%d%d", &n, &m);
for(int i=1; i<=n; i++)scanf("%d", &dp[i]), dp[i]+=dp[i-1];
for(l=1, r=1; r<=n; r++){
if(r-l+1>m)
while(r-l+1>m)
l++;
tot=sum(l,r);
ans=max(ans, tot);
if(tot<=0)
l=r+1;
}
while(l<=n)
ans=max(sum(l,n), ans), l++;
printf("%d", ans);
return 0;
}
救救孩子吧……