比赛 |
20240913练习 |
评测结果 |
AAAAAAAAAA |
题目名称 |
数字游戏 |
最终得分 |
100 |
用户昵称 |
健康铀 |
运行时间 |
0.312 s |
代码语言 |
C++ |
内存使用 |
3.61 MiB |
提交时间 |
2024-09-13 21:27:08 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAX_N 100001
#define INF 999999999
int n, s, t;
int sum[MAX_N];
int dl[MAX_N];
int main() {
freopen("ggame.in", "r", stdin);
freopen("ggame.out", "w", stdout);
cin>>n>>s>>t;
for (int i = 1; i <= n; i++) {
int x;
cin>>x;
sum[i]=sum[i - 1]+x;
}
int top2 = 0, top1 = 0;
int maxx = -INF;
for (int i = s; i<=n; i++) {
while (top1 >top2 && i - dl[top2] > t)
top2++;
while (top1 >top2 && sum[dl[top1 - 1]]>=sum[i - s])
top1--;
dl[top1++]=i-s;
if (i-dl[top2]>=s) {
maxx=max(maxx, sum[i]-sum[dl[top2]]);
}
}
cout<<maxx;
return 0;
}