AT_tkppc6_2_g Must be Distinct!
Description
[problemUrl]: https://atcoder.jp/contests/tkppc6-2/tasks/tkppc6_2_g
ある長さ $ M $ の整数列 $ B $ は、以下の条件を満たすとき*いい数列* と呼ばれます。
- $ 1\ \leq\ i\ \lt\ j\ \lt\ M $ かつ $ |B_i-B_{i+1}|=|B_j-B_{j+1}| $ を満たす整数対 $ (i,j) $ が存在**しない**。
ペンギンくんの目標は、与えられる長さ $ N $ の整数列 $ A $ に対して以下の操作を $ 0 $ 回以上任意の回数繰り返すことで、$ A $ を*いい数列* にすることです。
- $ 1\ \leq\ l\ \leq\ r\ \leq\ N $ を満たす整数対 $ (l,r) $ を選び、$ A_l,A_{l+1},\ldots,A_r $ をそれぞれ $ -1 $ 倍する。
ペンギンくんの目標が達成可能かを判定し、可能なら必要な操作回数の最小値を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
ペンギンくんの目標が達成可能なら操作回数の最小値を、達成不可能なら `-1` を出力せよ。
Explanation/Hint
### 制約
- $ 3\ \leq\ N\ \leq\ 10^5 $
- $ -10^9\ \leq\ A_i\ \leq\ 10^9\ (1\ \leq\ i\ \leq\ N) $
- 入力は全て整数
### Sample Explanation 1
例えば $ (l,r)=(2,3) $ として一度だけ操作を行うとよいです。
### Sample Explanation 2
ペンギンくんの目標は既に達成されています。
### Sample Explanation 3
ペンギンくんは目標を達成することができません。
### Sample Explanation 4
原案: \[penguinman\](https://atcoder.jp/users/penguinman)