比赛 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;  
}