問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
1 行目に整数 N が与えられます。
2 行目に N 個の整数 a_0, a_1, a_2, ..., a_{N-1} からなる数列 a が与えられます。
最初黒板には 0 が書かれており、これに以下の動作をおこないます。
また、数列 a には負の数が含まれる可能性があることに注意してください。
黒板に書かれた数字を、黒板に書かれた数字 + a_0
に書き換える
黒板に書かれた数字を、黒板に書かれた数字 + ( a_0 + a_1 )
に書き換える
黒板に書かれた数字を、黒板に書かれた数字 + ( a_0 + a_1 + a_2)
に書き換える
...
黒板に書かれた数字を、黒板に書かれた数字 + ( a_0 + a_1 + ... + a_{N-1})
に書き換える
上の動作を最後までおこなったとき、それまでに黒板に書かれた数字の中で最も大きい数字を、累積和を使うことで求め、一行で出力してください。
ただし、最初に書かれている 0 は黒板に書かれた数字に含まないこととします。
・ 1 行目に整数 N が与えられます。
・ 2 行目に負の数を含む N 個の整数 a_0, a_1, a_2, ..., a_{N-1} が与えられます。
N
a_0 a_1 a_2 ... a_{N-1}
上の動作を最後までおこなったとき、それまでに黒板に書かれた数字の中で最も大きい数字を、累積和を使うことで求め、一行で出力してください。
ただし、最初に書かれている 0 は黒板に書かれた数字に含まないこととします。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 2 ≦ N ≦ 1,000
・ -100 ≦ a_i ≦ 100 (0 ≦ i ≦ N-1)
5
1 2 3 4 5
35
7
8 1 3 -81 8 1 3
29