Max Sequence(P2593)

来源:互联网 发布:python编程兼职 编辑:程序博客网 时间:2024/06/16 12:20

和前一道题一样,,只改一点点就OK


#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;#define inf -100000000int main(){//freopen("fuck.txt","r",stdin);int i,j,k;int t;int n;//cin>>t;int go[100000];int big;int ans;int sum;int pre[100000];while (cin>>n,n){for (i=0;i<n;i++){scanf("%d",go+i);}sum=0;big=inf;for (i=0;i<n;i++){sum+=go[i];big=max(big,sum);if (sum<0)sum=0;pre[i]=big;}ans=inf;sum=0;for (i=n-1;i;i--){sum+=go[i];ans=max(ans,sum+pre[i-1]);sum=sum<0?0:sum;//cout<<ans<<' ';}cout<<ans<<endl;}return 0;}



Max Sequence
Time Limit: 3000MS Memory Limit: 65536KTotal Submissions: 12825 Accepted: 5364

Description

Give you N integers a1, a2 ... aN (|ai| <=1000, 1 <= i <= N).

You should output S.

Input

The input will consist of several test cases. For each test case, one integer N (2 <= N <= 100000) is given in the first line. Second line contains N integers. The input is terminated by a single line with N = 0.

Output

For each test of the input, print a line containing S.

Sample Input

5-5 9 -5 11 200

Sample Output

40

Source

POJ Monthly--2005.08.28,Li Haoyuan



原创粉丝点击