atcoder#ARC129D. [ARC129D] -1+2-1

[ARC129D] -1+2-1

配点 : 600600

問題文

長さ NN の整数列 A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N) が与えられます.

あなたは,以下の操作を好きな回数繰り返すことができます.

  • 整数 ii (1iN1 \leq i \leq N) を選び,Ai1,Ai,Ai+1A_{i-1},A_i,A_{i+1} にそれぞれ 1,2,1-1,2,-1 を足す. ただしここで,A0A_0ANA_N を指すものとし,また AN+1A_{N+1}A1A_1 を指すものとする.

AA のすべての要素を 00 にすることが可能かどうか判定し,また可能な場合は必要な最小の操作回数を求めてください.

制約

  • 3N2000003 \leq N \leq 200000
  • 100Ai100-100 \leq A_i \leq 100
  • 入力される値はすべて整数である

入力

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

NN

A1A_1 A2A_2 \cdots ANA_N

出力

AA のすべての要素を 00 にすることが不可能なら,-1 と出力せよ. 可能ならば,必要な最小の操作回数を出力せよ.

4
3 0 -1 -2
5

以下のように 55 回操作すればよいです.

  • i=2i=2 を選んで操作する.A=(2,2,2,2)A=(2,2,-2,-2) になる.
  • i=3i=3 を選んで操作する.A=(2,1,0,3)A=(2,1,0,-3) になる.
  • i=3i=3 を選んで操作する.A=(2,0,2,4)A=(2,0,2,-4) になる.
  • i=4i=4 を選んで操作する.A=(1,0,1,2)A=(1,0,1,-2) になる.
  • i=4i=4 を選んで操作する.A=(0,0,0,0)A=(0,0,0,0) になる.
3
1 0 -2
-1
4
1 -1 1 -1
-1
10
-28 -3 90 -90 77 49 -31 48 -28 -84
962