Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
37547 | 22fhq | 【S】T1 | C++ | 通过 | 100 | 101 MS | 2592 KB | 718 | 2025-04-06 14:45:05 |
#include<bits/stdc++.h> #define int long long using namespace std; void read(int &x){ x=0; char c=getchar(); bool neg=0; while(!isdigit(c)){if(c=='-')neg=1;c=getchar();} while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getchar(); if(neg)x=-x; } #define read2(a,b) read(a),read(b) #define read3(a,b,c) read2(a,b),read(c) int n,k,a[100005],s[100005],ss[100005]; void slv(){ read2(n,k); for(int i=1;i<=n;i++)read(a[i]),s[i]=s[i-1]+a[i],ss[i]=ss[i-1]+(a[i]>0?a[i]:0); int ans=0; for(int i=k;i<=n;i++){ ans=max({ans,ss[n]-ss[i]+ss[i-k]+s[i]-s[i-k],ss[n]-ss[i]+ss[i-k]}); } cout<<ans<<endl; } signed main(){ int T;read(T);while(T--) slv(); }