만드는 중입니다

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

구명정 무게 맞추기

시간 제한1초메모리 제한128 MB

요약
승객을 두 구명보트에 같은 수(홀수면 한 명 차이)로 나누어 두 쪽 무게 차이를 가장 작게 만듭니다.
난이도

보통10점 중 6점

유형
동적 계획법
정답자
아직 제출이 없습니다

문제

설계 결함이 많은 대형 유람선이 첫 항해 도중 침몰하기 시작했다. 배에는 구명정이 두 척 있고, 각 구명정에는 승객의 절반이 탈 수 있다. 한쪽에 무게가 쏠리면 그 구명정이 가라앉을 위험이 있으므로 두 구명정에 실리는 몸무게 합을 최대한 비슷하게 맞춰야 한다.

승객 NN명은 모두 구명정에 타야 하고, 두 구명정에 타는 인원은 같아야 한다. NN이 홀수여서 정확히 반으로 나눌 수 없으면 한 척에 ⌊N/2⌋\lfloor N/2 \rfloor명, 다른 한 척에 ⌈N/2⌉\lceil N/2 \rceil명이 탄다. 이 조건을 지키면서 두 몸무게 합의 차이를 최소로 만들었을 때, 두 구명정의 몸무게 합을 구하라.

입력

첫 줄에 테스트 케이스의 수 CC가 주어진다.

각 테스트 케이스의 첫 줄에는 구명정에 타야 하는 사람의 수 NN이 주어진다 (1≤N≤50001 \le N \le 5000). 다음 NN개의 줄에는 승객 한 명의 몸무게 WW가 한 줄에 하나씩 주어진다 (1≤W≤10001 \le W \le 1000).

출력

각 테스트 케이스마다 몸무게 합의 차이가 최소가 되도록 나누었을 때 두 구명정의 몸무게 합을 한 줄에 출력한다. 두 값이 다르면 작은 값을 먼저 출력하고, 두 값은 공백 하나로 구분한다.

예제3

  1. 예제 1

    입력
    2
    4
    20
    10
    15
    10
    5
    17
    13
    25
    4
    6
    
    예상 출력
    25 30
    31 34
    
  2. 예제 2

    입력
    1
    4
    1
    1
    1
    7
    
    예상 출력
    2 8
    
  3. 예제 3

    입력
    1
    1
    500
    
    예상 출력
    0 500