记录编号 174189 评测结果 AAAAAAAAAA
题目名称 数字游戏 最终得分 100
用户昵称 Gravatarforever 是否通过 通过
代码语言 C++ 运行时间 0.128 s
提交时间 2015-07-31 17:09:39 内存使用 1.07 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int s[100005],n,l,t,temp,ans,temp1,flag;
int q[100005],h,tail,head;
inline int in()
{
	temp1=0;
	char c=getchar();
	while(c<48||c>57)
    {
		if(c==45) 
            flag=1;
		c=getchar();
	}
	for(;c>=48&&c<=57;c=getchar())
		temp1=temp1*10+c-48;
	if(flag) 
    {
         flag=0;    
         return -temp1;
    }
	return temp1;
}
int main(){
	freopen("ggame.in","r",stdin);
	freopen("ggame.out","w",stdout);
	n=in(),l=in(),t=in();
	for(int i=1;i<=n;++i){
		h=in();
		s[i]=s[i-1]+h;
	}
	head=tail=0;
	for(int i=l;i<=n;++i){
		while(tail>head&&(i-q[head]>t||i-q[head]<l)) head++;//开始写成了q[head]>t了,就很牛逼的挂了; 
		temp=s[i-l];
		while(tail>head&&temp<=s[q[tail-1]]) tail--;
		q[tail++]=i-l;
		if(tail>head){
			ans=max(ans,s[i]-s[q[head]]);
		}
	}
	printf("%d",ans);
}