給出乙個整數序列s,其中有n個數,定義其中乙個非空連續子串行t中所有數的和為t的「序列和」。 對於s的所有非空連續子串行t,求最大的序列和。 變數條件:n為正整數,n≤1000000,結果序列和在範圍(-2^63,2^63-1)以內。
第一行為乙個正整數n,第二行為n個整數,表示序列中的數。
輸入可能包括多組資料,對於每一組輸入資料,
僅輸出乙個數,表示最大序列和。
示例1
複製
5
1 5 -3 2 4
61 -2 3 4 -10 6
4-3 -1 -2 -5
複製
9
7-1
思路 :
#include #include #include #include #include #include using namespace std ;
typedef long long ll;
const ll inf = 0x3f3f3f3f3f3f3f3f;
const ll maxn = 1e18+999 ;
const int max = 1000010 ;
int n ;
ll a[max] ;
ll sum = 0 ;
ll ans = -inf ;
// 非空連續和最大
int main ()
if(flag)
for(int i = 1 ;i<=n; i++ )
ans = max(ans,sum) ;
} if(flag) ;
cout
}
最大序列和
輸入描述 第一行為乙個正整數n,第二行為n個整數,表示序列中的數。輸出描述 輸入可能包括多組資料,對於每一組輸入資料,僅輸出乙個數,表示最大序列和。輸入例子 5 1 5 3 2 4 61 2 3 4 10 6 4 3 1 2 5輸出例子 9 7 1 include using namespace s...
最大序列和
給出乙個整數序列s,其中有n個數,定義其中乙個非空連續子串行t中所有數的和為t的 序列和 對於s的所有非空連續子串行t,求最大的序列和。變數條件 n為正整數,n 1000000,結果序列和在範圍 2 63,2 63 1 以內。第一行為乙個正整數n,第二行為n個整數,表示序列中的數。輸入可能包括多組資...
最大序列和
給出乙個整數序列s,其中有n個數,定義其中乙個非空連續子串行t中所有數的和為t的 序列和 對於s的所有非空連續子串行t,求最大的序列和。變數條件 n為正整數,n 1000000,結果序列和在範圍 2 63,2 63 1 以內。第一行為乙個正整數n,第二行為n個整數,表示序列中的數。輸入可能包括多組資...