非負整数からなる長さ の数列 が与えられる。この数列のすべての要素を同じ値にしたい。
1 回の操作では、現在の数列で隣り合う 2 つの要素 を選び、それらを という 1 つの要素に置き換えることができる。ここで、 はビットごとの XOR 演算を表す。この操作によって数列の長さは 減り、ほかの要素の順序は変わらない。
例えば、数列 の先頭の 2 要素を併合すると、 なので、数列は になる。
数列のすべての要素を同じ値にするために必要な併合回数の最小値を求めよ。最初からすべての要素が等しい場合、答えは である。また、要素が 1 つだけの数列も、すべての要素が等しいものとする。
入力は標準入力から次の形式で与えられる。
各テストケースについて、必要な併合回数の最小値を 1 行に出力せよ。
1 番目のテストケース: 先頭の 2 要素 を併合すると、数列は になる。
2 番目のテストケース: 先頭の 2 要素 を併合すると、数列は になる。その後、末尾の 2 要素 を併合すると、数列は になる。
はテストケースの個数である。各テストケース は次の形式で与えられる。
| 2 | 33 | . |
| 3 | 11 |
|
| 4 | 47 | 추가적인 제약이 없다. |
3 番目のテストケース: 2 回の併合で数列を 1 要素にすることができる。