給出一段序列,選出其中連續且非空的一段使得這段和最大。
第一行是乙個正整數nn,表示了序列的長度。
第二行包含nn個絕對值不大於1000010000的整數a_iai,描述了這段序列。
乙個整數,為最大的子段和是多少。子段的最小長度為11。
輸入 #1複製
72 -4 3 -1 2 -4 3
輸出 #1複製
4
【樣例說明】
2,-4,3,-1,2,-4,32,−4,3,−1,2,−4,3中,最大的子段和為4,該子段為3,-1,23,−1,2.
【資料規模與約定】
對於40\%40%的資料,有n ≤ 2000n≤2000。
對於100\%100%的資料,有n ≤ 200000n≤200000。
思路:f[i]表示以i結尾的前i個數字中與第i個數字連續的最大子段和。
如果第i個數字加上f[i-1]變大了,那麼f[i]=f[i-1]+a[i];
否則f[i]=a[i];
#include #include#include
using
namespace
std;
const
int maxn= 200005
;long
long
f[maxn];
long
long
a[maxn];
intmain()
cout
<< ans
}
P1115 最大子段和
給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個整數,為最大的子段和是多少。子段的最小長度為1。輸...
P1115 最大子段和
給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個整數,為最大的子段和是多少。子段的最小長度為1。輸...
P1115 最大子段和
給出一段序列,選出其中連續且非空的一段使得這段和最大。輸入格式 輸入檔案maxsum1.in的第一行是乙個正整數n,表示了序列的長度。第2行包含n個絕對值不大於10000的整數a i 描述了這段序列。輸出格式 輸入檔案maxsum1.out僅包括1個整數,為最大的子段和是多少。子段的最小長度為1。輸...