记录编号 239679 评测结果 AAAAAAAAAA
题目名称 单子序列最大和 最终得分 100
用户昵称 GravatarSPA 是否通过 通过
代码语言 C++ 运行时间 0.041 s
提交时间 2016-03-20 15:11:02 内存使用 4.13 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
inline int QR(){
	char ch;
	bool minus=0;
	while(!isdigit(ch=getchar())) if(ch=='-') minus=1;
	int x=ch-48;
	while(isdigit(ch=getchar())) x=x*10+ch-48;
	if(minus) return -x;
	return x;
}
inline void QW(long long num){
	if(num<0) num=-num,putchar('-');
	int cnt=0;
	string str;
	while(str[++cnt]=num%10+'0',num/=10,num);
	while(putchar(str[cnt]),--cnt,cnt);
	putchar('\n');//数字之后的输出
}

const int ma=1e6+10;
deque <int> q;
int sum[ma]={0};

int main(){
	#define OJ
	#ifdef OJ
		freopen("subq.in","r",stdin);
		freopen("subq.out","w",stdout);
	#endif
	int n=QR(),l,r;
	int ans=-0x7fffffff;
	for(int i=1;i<=n;i++) sum[i]+=sum[i-1]+QR();//前缀和 
	for(int i=1;i<=n;i++){
		while(!q.empty() && sum[i-1]<=sum[q.back()]) q.pop_back();
		q.push_back(i-1);
		int f=q.front();
		if(ans<sum[i]-sum[f]) ans=sum[i]-sum[f],l=f+1,r=i;
	}
	QW(l),QW(r),QW(ans);
	return 0;
}