음이 아닌 정수로 이루어진 길이 의 수열 이 주어진다. 이 수열의 모든 원소를 같은 값으로 만들려고 한다.
한 번의 연산으로 현재 수열에서 서로 인접한 두 원소 를 골라, 그 자리에 하나만 남기도록 합칠 수 있다. 여기서 는 비트 XOR 연산이다. 이 연산을 수행하면 수열의 길이가 줄어들며, 나머지 원소의 순서는 바뀌지 않는다.
예를 들어, 수열 에서 앞의 두 원소를 합치면 이므로 수열은 가 된다.
수열의 모든 원소를 같은 값으로 만드는 데 필요한 병합 횟수의 최솟값을 구하여라. 이미 모든 원소가 같다면 답은 이며, 원소가 하나만 남은 수열도 모든 원소가 같은 것으로 본다.
입력은 다음과 같은 형식으로 주어진다.
각 테스트 케이스마다 필요한 최소 병합 횟수를 한 줄에 하나씩 출력한다.
첫 번째 테스트 케이스: 앞의 두 원소 를 병합하면 수열은 이 된다.
두 번째 테스트 케이스: 앞의 두 원소 을 병합하면 수열은 이 된다. 이후 뒤의 두 원소 을 병합하면 수열은 가 된다.
는 테스트 케이스의 수이다. 각 테스트 케이스 는 다음과 같은 형식으로 주어진다.
| 2 | 33 | . |
| 3 | 11 |
|
| 4 | 47 | 추가적인 제약이 없다. |
세 번째 테스트 케이스: 두 번의 병합으로 하나의 원소만 남길 수 있다.