아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

조공

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

요약
2^n - 1개의 모든 공집합이 아닌 부분집합 합이 주어질 때, 원래의 n개 양의 정수를 복원하거나 답이 없거나 유일하지 않으면 NO를 출력한다.
난이도

보통10점 중 7점

유형
정렬, 그리디, 구현, 수학
정답자
아직 제출이 없습니다

문제

천자이신 황제께서 재상인 당신에게 이웃한 nn개 왕국에서 조공을 거둬들이라고 명하셨다. 각 조공국에는 은화로 낼 액수가 정해져 있는데, ii번째 왕국의 액수는 aia_i이다. 황제께서는 무한한 은혜를 베푸시기 위해 일부 국가에서만 돈을 거두고 나머지는 봐주기로 하셨다. 열의가 넘치던 재무 대신은 모든 aia_i를 적어 두고 이미 가능한 모든 2n−12^n - 1가지 수입 값, 즉 조공국의 공집합이 아닌 부분집합의 합을 산출해 두었다. 그런데 그 과정에서 대신은 원래 조공 액수가 적힌 종이를 잃어버렸다. 이 잘못과 서체 불량으로 그는 즉시 처형되었다.

이제 당신에게는 아주 엉망으로 적힌 2n−12^n - 1개의 합만 남아 있다. 이 합들로부터 조공 액수를 복원할 수 있겠는가?

입력

첫 줄에는 테스트 케이스의 수 zz가 주어진다 (1≤z≤200)(1 \leq z \leq 200). 그다음에 각 테스트 케이스의 설명이 이어진다.

각 테스트 케이스는 두 줄로 이루어진다. 첫째 줄에는 nn (1≤n≤20)(1 \le n \le 20)이 주어지고, 둘째 줄에는 조공의 가능한 모든 합을 나타내는 2n−12^n - 1개의 정수가 주어지며 각 값은 2⋅1092 \cdot 10^9를 넘지 않는다. 조공 액수는 모두 양의 정수였다고 가정한다. 모든 테스트 케이스에 있는 합의 총 개수는 10710^7을 넘지 않는다.

출력

각 테스트 케이스마다 복원한 aia_i 값을 i=1,2,…,ni = 1, 2, \ldots, n에 대해 오름차순으로 출력한다. 입력에 맞는 값이 없거나 가능한 값이 여러 가지라면 대신 ``\texttt{NO}''를 출력한다. 같은 사람을 두 번 처형할 수는 없기 때문이다.

예제1

  1. 예제 1

    입력
    1
    3
    1 2 3 3 4 5 6
    
    예상 출력
    1 2 3