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

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

같은 팀 하자

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

요약
순위 선호 목록을 바탕으로 차단 쌍이 없는 안정적인 짝 가운데 사전 순으로 가장 앞선 짝을 구하고 없으면 NO SOLUTION을 출력합니다.
난이도

어려움10점 중 9점

유형
그래프, 게임 이론
정답자
아직 제출이 없습니다

문제

참가자가 팀원을 직접 고르지 않고 주최 측이 팀을 정해 주는 대회를 연다. 참가자는 저마다 자기를 뺀 나머지 참가자 전원을 같은 팀이 되고 싶은 순서대로 적어서 낸다. 목록의 첫 번째 사람이 가장 같은 팀이 되고 싶은 사람이고, 마지막 사람이 가장 같은 팀이 되기 싫은 사람이다.

참가자 NN명을 두 명씩 짝지어 모두 팀에 배정한다. 서로 다른 참가자 네 명 A, B, C, D가 있어서 A는 C와 한 팀, B는 D와 한 팀이면서 A는 C보다 B를 더 원하고 B도 D보다 A를 더 원하면, 참가자들은 그 배정을 받아들이지 않는다. 이런 네 명이 없는 배정을 좋은 배정이라고 하자.

좋은 배정은 여러 개일 수 있으므로 그중 하나만 정답으로 받는다. 참가자 ii의 짝을 pip_i라고 하면, 좋은 배정 중에서 수열 p1,p2,…,pNp_1, p_2, \dots, p_N이 사전순으로 가장 앞서는 배정을 구한다. 두 수열은 처음으로 값이 달라지는 자리에서 더 작은 값을 가진 쪽이 사전순으로 앞선다.

입력

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

각 테스트 케이스의 첫째 줄에는 참가자 수 NN이 주어진다. 이어지는 NN개 줄 중 ii번째 줄에는 참가자 ii의 선호 목록 Pi1,Pi2,…,Pi(N−1)P_{i1}, P_{i2}, \dots, P_{i(N-1)}이 공백으로 구분되어 주어진다. 이 목록은 ii를 뺀 나머지 참가자를 ii가 가장 원하는 사람부터 가장 원하지 않는 사람까지 나열한 것이고, 나머지 참가자 N−1N-1명이 정확히 한 번씩 나온다.

  • 1≤T≤201 \le T \le 20
  • 2≤N≤1002 \le N \le 100
  • 1≤Pij≤N1 \le P_{ij} \le N
  • Pij≠iP_{ij} \ne i

출력

각 테스트 케이스마다 한 줄씩 출력한다.

좋은 배정이 있으면 사전순으로 가장 앞서는 배정을 팀 목록으로 출력한다. 각 팀은 i<ji < j인 두 참가자를 i:j 꼴로 쓰고, 팀은 ii가 커지는 순서로 정렬해 공백 한 칸으로 구분한다.

좋은 배정이 없으면 NO SOLUTION을 출력한다.

예제2

  1. 예제 1

    입력
    3
    4
    2 3 4
    3 1 4
    1 2 4
    1 2 3
    8
    2 5 4 6 7 8 3
    3 6 1 7 8 5 4
    4 7 2 8 5 6 1
    1 8 3 5 6 7 2
    6 1 8 2 3 4 7
    7 2 5 3 4 1 8
    8 3 6 4 1 2 5
    5 4 7 1 2 3 6
    6
    4 6 2 5 3
    6 3 5 1 4
    4 5 1 6 2
    2 6 5 1 3
    4 2 3 6 1
    5 1 4 2 3
    
    예상 출력
    NO SOLUTION
    1:2 3:4 5:8 6:7
    1:6 2:3 4:5
    
  2. 예제 2

    입력
    2
    2
    2
    1
    4
    3 4 2
    4 3 1
    2 1 4
    1 2 3
    
    예상 출력
    1:2
    1:3 2:4