记录编号 239589 评测结果 AAAAAAAAAA
题目名称 单子序列最大和 最终得分 100
用户昵称 Gravatar水墨青花 是否通过 通过
代码语言 C++ 运行时间 0.066 s
提交时间 2016-03-20 14:14:41 内存使用 4.13 MiB
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<deque>

using namespace std;

void Read();
	
int sum[1000001];

int main()
{
	freopen("subq.in","r",stdin);
	freopen("subq.out","w",stdout);

	Read();

	fclose(stdin);
	fclose(stdout);
	return 0;
}

void Read()
{
	int n;

	
	deque<int> q;
	
	memset(sum,0,sizeof(sum));
	
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&sum[i]);
		sum[i]+=sum[i-1];
	}
	
	int s,e;
	int dis=-0x7fffffff;
	for(int i=1;i<=n;i++)
	{
		while(!q.empty()&&sum[i-1]<=sum[q.back()])
		{
			q.pop_back();
		}
		q.push_back(i-1);
		
		if(dis<sum[i]-sum[q.front()])
		{
			dis=sum[i]-sum[q.front()];
			s=q.front()+1;
			e=i;
		}
	}
	
	printf("%d\n%d\n%d\n",s,e,dis);
}