atcoder#CF16EXHIBITIONFINALC. Cheating Nim

Cheating Nim

题目描述

チーターと不正者がニムをすることになりました。 このゲームでは、N N 個の石の山を使います。 最初に i i 番目の山には ai a_i 個の石があります。 チーターが先手で、交互にターンを取ります。 それぞれのターンでは、プレイヤーは一つの山を選び、その山から一個以上の石を取り除きます。 ターンが回ってきたときに操作ができなくなったプレイヤーの負けです。

しかし、ゲームが始まる前に、不正者はチーターがどのような動きをしても必ず勝つことができるように少し不正をすることにしました。 それぞれの山から、不正者は 0 個または 1 個の石を取り除き、ゲームが始まる前に食べます。 不正者が必ず勝てるようにする方法が複数通りある場合は、食べる石の個数を最小にするようにしたいです。

不正者が食べる石の個数を求めてください。 不正をしても不正者が必ず勝つようにできない場合は、-1 を出力してください。

输入格式

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

N N a1 a_1 : aN a_N

输出格式

答えを出力せよ。

3
2
3
4
3
3
100
100
100
-1

提示

制約

  • 1 < = N < = 105 1\ <\ =\ N\ <\ =\ 10^5
  • 2 < = ai < = 109 2\ <\ =\ a_i\ <\ =\ 10^9

Sample Explanation 1

不正者が勝つ唯一の方法は、全ての山から石を取って食べることです。