AT_agc062_d [AGC062D] Walk Around Neighborhood

Description

[problemUrl]: https://atcoder.jp/contests/agc062/tasks/agc062_d 二次元平面の原点 $ (0,0) $ にメモ帳を持った高橋君がいます。メモ帳には $ N $ 個の**偶数** $ D_i\ (1\leq\ i\ \leq\ N) $ が書かれています。 これから高橋君は二次元平面上で以下の行動を $ N $ 回行います。 - メモ帳に書かれている偶数を $ 1 $ つ選んで消す。選んだ偶数を $ d $ としたとき、マンハッタン距離でちょうど $ d $ だけ離れた点へ移動する。より正確には、現在高橋君がいる点の座標を $ (x,y) $ としたとき、$ |x-x'|+|y-y'|=d $ を満たす点 $ (x',y') $ へ移動する。 $ N $ 回の行動を行った後、高橋君は原点 $ (0,0) $ に戻っていなければなりません。 そのように $ N $ 回の行動を行うことができるか判定してください。可能な場合、$ i $ 回目の行動を終えた後高橋君がいる座標を $ (x_i,y_i) $ としたときの $ \displaystyle\ \max_{1\leq\ i\ \leq\ N}(|x_i|+|y_i|) $ の最小値を求めてください(この値は整数になることが証明できます)。

Input Format

入力は以下の形式で標準入力から与えられます。 > $ N $ $ D_1 $ $ D_2 $ $ \dots $ $ D_N $

Output Format

上記のように $ N $ 回の行動を行うことが不可能な場合、`-1` を出力してください。可能な場合、$ \displaystyle\ \max_{1\leq\ i\ \leq\ N}(|x_i|+|y_i|) $ の最小値を整数で出力してください。

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $ - $ 2\ \leq\ D_i\ \leq\ 2\ \times\ 10^5 $ - $ D_i\ (1\leq\ i\ \leq\ N) $ は偶数 - 入力される値はすべて整数 ### Sample Explanation 1 高橋君が $ 1 $ 回目から $ 3 $ 回目の行動でそれぞれ $ 2,6,4 $ をメモ帳から消し、 $ (0,0)\rightarrow\ (0,2)\ \rightarrow\ (-4,0)\ \rightarrow\ (0,0) $ と移動すると $ \displaystyle\ \max_{1\leq\ i\ \leq\ N}(|x_i|+|y_i|) $ は $ 4 $ になり、これが最小です。 ### Sample Explanation 2 高橋君が $ 1 $ 回目から $ 5 $ 回目の行動でそれぞれ $ 2,2,6,2,2 $ をメモ帳から消し、 $ (0,0)\rightarrow\ (\frac{1}{2},\frac{3}{2})\rightarrow\ (0,3)\ \rightarrow\ (0,-3)\ \rightarrow\ (-\frac{1}{2},-\frac{3}{2})\ \rightarrow\ (0,0) $ と移動すると $ \displaystyle\ \max_{1\leq\ i\ \leq\ N}(|x_i|+|y_i|) $ は $ 3 $ になり、これが最小です。 高橋君は格子点以外にも移動できます。 ### Sample Explanation 3 高橋君は上記のように $ N $ 回行動した後、原点に戻ることはできません。