사탕 나누기

시간 제한5초메모리 제한512 MB

요약
받아올림 없는 덧셈으로 두 더미의 값이 같아지도록 사탕을 두 비어 있지 않은 더미로 나누고 자신이 가지는 합의 최댓값을 구합니다.
난이도

보통10점 중 5점

유형
비트 연산, 그리디
정답자
아직 제출이 없습니다

문제

션과 패트릭은 형제다. 부모님에게서 사탕이 든 봉지를 받았다. 사탕마다 양의 정수 값이 매겨져 있고, 두 사람은 이 사탕을 나눠 가지려고 한다. 먼저 션이 사탕을 두 더미로 나눈 다음 그중 한 더미를 골라 패트릭에게 준다. 그다음 패트릭이 두 더미의 값을 각각 계산한다. 더미의 값은 그 더미에 든 사탕 값을 모두 더한 값이다. 두 더미의 값이 다르다고 판단하면 패트릭은 울기 시작한다.

패트릭은 아직 어려서 덧셈을 제대로 하지 못한다. 이진법 덧셈을 거의 할 줄 알지만, 1과 1을 더할 때 윗자리로 올림을 넘기는 것을 늘 잊어버린다. 예를 들어 12(이진법으로 1100)와 5(이진법으로 101)를 더하면 오른쪽 두 자리는 제대로 더하지만, 셋째 자리에서 올림을 윗자리로 넘기지 않는다.

  1100
+ 0101
------
  1001

셋째 자리의 올림 없이 마지막 자리까지 더했으므로 결과는 9(이진법으로 1001)다. 패트릭의 계산은 이런 식이다.

5 + 4 = 1
7 + 9 = 14
50 + 10 = 56

션은 덧셈을 잘하고, 동생을 울리지 않으면서 자기 몫의 값을 최대로 가져가려 한다. 가능하다면 션은 봉지를 비어 있지 않은 두 더미로 나누어, 패트릭이 두 더미의 값을 같다고 여기게 만든다. 봉지에 든 사탕 값이 모두 주어질 때 이런 분할이 가능한지 판단하고, 가능하면 션이 가지는 더미의 값의 최댓값을 구하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다. 각 테스트 케이스는 두 줄로 이루어진다. 첫째 줄에는 봉지에 든 사탕의 개수 NN이 주어진다. 둘째 줄에는 사탕 각각의 값 CiC_i가 공백 한 칸으로 구분되어 주어진다.

제한

  • 1≤T≤1001 \le T \le 100
  • 2≤N≤152 \le N \le 15
  • 1≤Ci≤1061 \le C_i \le 10^6

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호다. 패트릭을 울리지 않고 나누는 방법이 없으면 y는 NO이고, 있으면 y는 션이 가지는 더미의 값이다.

예제4

  1. 예제 1

    입력
    2
    5
    1 2 3 4 5
    3
    3 5 6
    
    예상 출력
    Case #1: NO
    Case #2: 11
    
  2. 예제 2

    입력
    1
    2
    1 1
    
    예상 출력
    Case #1: 1
    
  3. 예제 3

    입력
    1
    2
    1 2
    
    예상 출력
    Case #1: NO
    
  4. 예제 4

    입력
    1
    6
    1 1 2 2 3 3
    
    예상 출력
    Case #1: 11