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)