记录编号 322267 评测结果 AAAAAAAAAA
题目名称 [福州培训2010] 最大和 最终得分 100
用户昵称 GravatarSky_miner 是否通过 通过
代码语言 C++ 运行时间 0.026 s
提交时间 2016-10-14 21:16:02 内存使用 0.28 MiB
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <queue>
#include <algorithm>
#include <climits>
#include <cstring>
using namespace std;
typedef long long ll;
inline void read(int &x){
	x=0;char ch;bool flag = false;
	while(ch=getchar(),ch<'!');if(ch == '-') ch=getchar(),flag = true;
	while(x=10*x+ch-'0',ch=getchar(),ch>'!');if(flag) x=-x;
}
inline ll cat_min(const ll &a,const ll &b){return a<b ?a:b;}
inline ll cat_max(const ll &a,const ll &b){return a>b ?a:b;}
const int maxn = 50010;
ll f,g,sum,ff,gg;
int main(){
	freopen("maxsum.in","r",stdin);
	freopen("maxsum.out","w",stdout);
	int n;read(n);
	for(int i=1,x;i<=n;++i){
		read(x);
		f = cat_max(f,0LL) + x;ff = cat_max(ff,f);
		g = cat_min(g,0LL) + x;gg = cat_min(gg,g);
		sum += x;
	}
	printf("%lld",cat_max(ff,sum - gg));
	//getchar();getchar();
	return 0;
}