AT_arc229_b [ARC229B] Halving Subtraction
Description
長さ $ N $ の非負整数列 $ A=(A_1,A_2,\dots,A_N) $ が与えられます。
あなたは $ A $ に対して以下の操作を $ 0 $ 回以上好きな回数行うことができます:
- 正整数 $ x_0 $ を選び、 $ x=x_0 $ とする。その後、 $ i=1,2,\ldots,N $ の順に以下を行う:
- $ A_i $ から $ x $ を引き、 $ x $ を $ \displaystyle \left\lfloor \frac x2\right\rfloor $ で置き換える。
$ A $ の要素を全て $ 0 $ にすることが可能か判定し、可能な場合は全て $ 0 $ にするために必要な操作回数の最小値を求めてください。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $
各テストケースは以下の形式で与えられる。
> $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
各テストケースに対する答えを順に改行区切りで出力せよ。
各テストケースについて、 $ A $ の要素を全て $ 0 $ にすることが可能ならば必要な操作回数の最小値を、不可能ならば `-1` を出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ 番目のテストケースについて考えます。
以下のように操作することで $ 2 $ 回の操作で $ A $ の要素を全て $ 0 $ にすることができます:
- $ x_0=3 $ を選ぶ。 $ A=(10,4) $ から $ A=(7,3) $ となる。
- $ x_0=7 $ を選ぶ。 $ A=(7,3) $ から $ A=(0,0) $ となる。
$ 2 $ 回未満の操作で $ A $ の要素を全て $ 0 $ にすることはできないので、 $ 1 $ 行目には $ 2 $ を出力してください。
### Constraints
- $ 1\le T\le 10^4 $
- $ 1\le N\le 30 $
- $ 0\le A_i\le 10^9 $
- 入力される値は全て整数