还有就是求助题意,负数要输出吗?
#include<cstdio>
#include<algorithm>
#define inf 2147483647
#define N 114514
using namespace std;
int n,k,s1[N],s2[N],ans=-inf;
signed main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&s2[i]);
s1[i]=s1[i-1]+max(s2[i],0);
s2[i]+=s2[i-1];
}
for(int i=1;i+k<=n;i++){
int j=i+k-1;
ans=max(ans,s2[j]-s2[i-1]+s1[i-1]+s1[n]-s1[j]);
ans=max(ans,s1[i-1]+s1[n]-s1[j]);
}
printf("%d",ans);
return 0;
}