记录编号 583926 评测结果 AAAAAAAAAA
题目名称 最大子序和 最终得分 100
用户昵称 Gravatar增强型图元文件 是否通过 通过
代码语言 C++ 运行时间 0.204 s
提交时间 2023-10-24 20:21:57 内存使用 4.01 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
deque<int> dq;
int nums[300010];
int he[300010];
int n,m;
int main(int argc, char** argv) {
	freopen("maxsubseqsum.in","r",stdin);
	freopen("maxsubseqsum.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>nums[i];
	}
	memset(he,0,sizeof(he));
	for(int i=1;i<=n;i++){
		he[i]=he[i-1]+nums[i];
	}
	int ans=he[1];
	dq.push_back(1);
	for(int i=2;i<=n;i++){
		while(i-dq.front()>m){
			dq.pop_front();
		}
		ans=max(ans,he[i]-he[dq.front()]);
		while(dq.size()>0){
			if(he[dq.back()]<=he[i])break;
			dq.pop_back();
		}
		dq.push_back(i);
	}
	cout<<ans;
	return 0;
}