分割統治法 (Divide & Conquer) を用いた最大部分配列の合計
整数が
n
個含まれる配列が与えられたときに、分割統治法を使って連続する部分配列の中から合計値が最大となるものを見つけます。 入力
入力の最初の行には、配列の要素数を示す整数
n
が与えられます (1 ≤ n ≤ )。次の行には、配列の要素を表す
n
個の整数がスペース区切りで与えられます ()。 出力
プログラムは、与えられた配列の部分配列のうち、取得できる最大の合計値を表す整数を1つ出力します。
例
入力 | 出力 |
9
-2 1 -3 4 -1 3 1 -4 -2 | 7 |
10
1 -2 3 4 -3 1 7 -10 -20 4 | 12 |
解説
- -2 1 -3
4 -1 3 1
-4 -2 → ハイライトされた部分配列の合計は (4 - 1 + 3 + 1) = 7
- 1 -2
3 4 -3 1 7
-10 -20 4 → 3 + 4 -3 + 1 + 7 = 12
Constraints
Time limit: 5 seconds
Memory limit: 512 MB
Output limit: 1 MB