사탕 나누기 (라지)
시간 제한5초메모리 제한512 MB
사탕을 xor 합이 같은 두 무더기로 나누고 자신이 가져가는 무더기의 일반 합이 가장 크도록 합니다.
문제
숀과 패트릭은 형제다. 부모님에게서 사탕이 가득 든 봉지를 받았다. 사탕마다 양의 정수 값이 매겨져 있고, 두 사람은 이 사탕을 나눠 가지려고 한다. 먼저 숀이 사탕을 두 더미로 나눈 다음 한 더미를 골라 패트릭에게 준다. 그러면 패트릭이 각 더미의 값을 계산한다. 더미의 값은 그 더미에 든 사탕 값의 합이다. 두 더미의 값이 같지 않다고 판단하면 패트릭은 울음을 터뜨린다.
패트릭은 아직 어려서 덧셈을 제대로 하지 못한다. 이진법 덧셈은 거의 할 줄 알지만, 1과 1을 더할 때 올림을 윗자리로 넘기는 것을 늘 잊는다. 예를 들어 12(이진수 1100)와 5(이진수 101)를 더하면 오른쪽 두 자리는 제대로 더하지만, 셋째 자리에서는 올림을 윗자리로 넘기지 않는다.
1100
+ 0101
------
1001
셋째 자리의 올림 없이 마지막 자리까지 더하고 나면 결과는 9(이진수 1001)다. 패트릭의 계산은 이런 식이다.
5 + 4 = 1
7 + 9 = 14
50 + 10 = 56
숀은 덧셈을 아주 잘한다. 동생을 울리지 않으면서 값을 최대한 많이 가져가고 싶다. 가능하다면 봉지를 비어 있지 않은 두 더미로 나누어, 패트릭이 두 더미의 값을 같다고 여기게 만든다. 봉지에 든 사탕 값이 모두 주어질 때 이런 분할이 가능한지 판정하고, 가능하다면 숀이 가지는 더미 값의 최댓값을 구한다.
입력
첫째 줄에 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 두 줄이다. 첫째 줄에는 봉지에 든 사탕의 개수 이 주어지고, 둘째 줄에는 사탕 개의 값 가 공백 하나로 구분되어 주어진다.
제한
출력
각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호다. 패트릭을 울리지 않게 나눌 방법이 없으면 는 문자열 NO다. 나눌 수 있으면 는 숀이 가지는 더미의 값이다.