SOJ ONLINE JUDGE

문제 161

안정적인 짝짓기

내 상태
미제출
난이도
161번 문제 난이도 보기
Platinum I
출제자
rlatjwls7882
시간 제한
5000 ms
메모리 제한
1024 MB
161번 문제 태그 보기
구현

남성과 여성이 각각 $N$명 있다. 남성과 여성의 번호는 각각 $0$부터 $N-1$까지이다. 각 사람은 모든 이성에게 중복 없는 선호 순위를 매긴다. 각 남성이 여성 한 명과 짝을 이루도록 모든 사람을 짝짓는다.

서로 짝이 아닌 남녀가 각자 현재 상대보다 서로를 더 선호한다면 이 짝짓기는 불안정하다. 그런 남녀가 없는 짝짓기를 안정적이라고 한다.

각 남성이 가능한 모든 안정적인 짝짓기 중 자신이 가장 선호하는 상대와 짝지어지는 결과를 구해 보자. 이러한 남성 최적 안정 매칭은 항상 존재하며 유일하다.

입력

첫 번째 줄에 테스트 케이스의 수를 의미하는 정수 $Q$가 주어진다. $(1 \le Q \le 100)$

각 테스트 케이스의 첫 번째 줄에 정수 $N$이 주어진다. $(1 \le N \le 1\,000)$

두 번째 줄부터 $N$개의 줄에 걸쳐 각 남성의 선호 목록이 남성의 번호순으로 주어진다. 각 줄에 여성의 번호를 나타내는 정수 $N$개가 선호하는 순서대로 공백으로 구분되어 주어진다.

그다음 줄부터 $N$개의 줄에 걸쳐 각 여성의 선호 목록이 여성의 번호순으로 주어진다. 각 줄에 남성의 번호를 나타내는 정수 $N$개가 선호하는 순서대로 공백으로 구분되어 주어진다. 각 선호 목록은 $0$부터 $N-1$까지의 순열이다.

전체 테스트 케이스에서 $N^2$의 합은 $10^6$ 이하이다.

출력

각 테스트 케이스마다 $0$번부터 $N-1$번 남성의 순서대로, 짝을 이룬 여성의 번호를 공백으로 구분하여 한 줄에 출력한다.

예제 입력 1

3
1
0
0
2
1 0
0 1
0 1
1 0
2
1 0
1 0
0 1
1 0

예제 출력 1

0
1 0
0 1

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.