만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Quake Live 팀 나누기

면접 대비

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

요약
주어진 실력 값을 가진 짝수 명 플레이어를 두 팀으로 균등하게 나누어 팀 실력 합 차이를 가장 작게 만듭니다.
난이도

보통10점 중 4점

유형
동적 계획법, 완전 탐색
정답자
아직 제출이 없습니다

문제

Quake Live는 여러 방식의 대전을 지원하는 1인칭 슈팅 게임이다. 그중 가장 인기 있는 방식은 4대4 팀 데스매치다. 여덟 명이 입장해서 네 명씩 두 팀으로 갈라지고, 두 팀은 끝까지 싸운다. 팀원이 모두 먼저 쓰러진 팀이 진다.

서버는 참가자마다 대전 기록을 보관하고, 그 기록으로 실력 점수를 1 이상 1000 이하의 정수로 추정한다. 대전을 최대한 공평하게 맞추려고, 참가자가 접속하면 서버는 실력 점수를 보고 두 팀의 실력 점수 합 차이가 가장 작아지도록 인원을 나눈다.

서버가 이 계산을 제대로 하는지 확인하려고 한다. 참가자의 실력 점수가 주어질 때, 두 팀의 실력 점수 합 차이의 최솟값을 구하라. 두 팀의 인원수는 항상 같아야 한다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 줄이 주어진다. 각 줄은 입장한 참가자 수 NN으로 시작하고, 그 줄의 나머지 NN개 정수가 참가자의 실력 점수다. 실력 점수는 정해진 순서 없이 주어진다.

제한

  • 1≤T≤1001 \le T \le 100
  • NN은 짝수이고 2≤N≤162 \le N \le 16
  • 실력 점수는 1 이상 1000 이하의 정수

출력

각 테스트 케이스마다 Case #X: Y 형식으로 한 줄씩 출력한다. XX는 1부터 시작하는 테스트 케이스 번호이고, YY는 A팀의 실력 점수 합과 B팀의 실력 점수 합의 차이 중 가장 작은 값이다.

예제2

  1. 예제 1

    입력
    3
    8 1 2 3 4 5 6 7 8
    8 1 1 1 1 1 1 1 1000
    2 13 17
    
    예상 출력
    Case #1: 0
    Case #2: 999
    Case #3: 4
    
  2. 예제 2

    입력
    2
    2 7 7
    2 1 1000
    
    예상 출력
    Case #1: 0
    Case #2: 999