100 atcoder#ABC125D. [ABC125D] Flipping Signs

[ABC125D] Flipping Signs

配点 : 400400

問題文

NN 個の整数が並んでおり、順に A1,A2,...,ANA_1, A_2, ..., A_N です。

あなたはこの整数列に対して次の操作を好きなだけ行うことができます。

操作: 1iN11 \leq i \leq N-1 を満たす整数 ii を選ぶ。AiA_iAi+1A_{i+1}1-1 を乗算する。

操作終了後の整数列を B1,B2,...,BNB_1, B_2, ..., B_N とします。

B1+B2+...+BNB_1 + B_2 + ... + B_N の最大値を求めてください。

制約

  • 入力は全て整数である。
  • 2N1052 \leq N \leq 10^5
  • 109Ai109-10^9 \leq A_i \leq 10^9

入力

入力は以下の形式で標準入力から与えられる。

NN

A1A_1 A2A_2 ...... ANA_N

出力

B1+B2+...+BNB_1 + B_2 + ... + B_N の最大値を出力せよ。

3
-10 5 -4
19

次のように操作を行うと、B1=10,B2=5,B3=4B_1 = 10, B_2 = 5, B_3 = 4 になり、このときの B1+B2+B3=10+5+4=19B_1 + B_2 + B_3 = 10 + 5 + 4 = 19 が最大です。

  • ii として 11 を選ぶ。操作により、整数列は 10,5,410, -5, -4 に変化する。
  • ii として 22 を選ぶ。操作により、整数列は 10,5,410, 5, 4 に変化する。
5
10 -4 -8 -11 3
30
11
-1000000000 1000000000 -1000000000 1000000000 -1000000000 0 1000000000 -1000000000 1000000000 -1000000000 1000000000
10000000000

出力が 3232 ビット整数型に収まらない場合があります。