짝

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

요약
남녀 각 N명의 선호 순위가 모두 주어질 때 남성에게 가장 유리한 안정 매칭을 구합니다.
난이도

보통10점 중 5점

유형
그리디, 시뮬레이션, 큐
정답자
아직 제출이 없습니다

문제

nn명의 남자와 nn명의 여자가 짝을 짓는다. 남자는 모두 정확히 한 명의 여자와 짝이 되고, 여자도 모두 정확히 한 명의 남자와 짝이 된다. 각 사람에게는 반대 성별 전원을 좋아하는 순서대로 줄 세운 선호 목록이 있고, 같은 순위는 없다.

짝짓기가 안정적이라는 말은 이런 뜻이다. 서로 짝이 아닌 남자 mm과 여자 ww 중에서, mm이 자기 짝보다 ww를 더 좋아하고 동시에 ww도 자기 짝보다 mm을 더 좋아하는 쌍이 하나도 없다.

안정적인 짝짓기는 여러 개일 수 있으므로 그중 남자 최적 짝짓기 하나만 출력한다. 남자 최적 짝짓기에서는 모든 남자가, 안정적인 짝짓기 전체를 통틀어 자신의 짝이 될 수 있는 여자 가운데 가장 좋아하는 여자와 짝이 된다. 이런 짝짓기는 항상 존재하고 유일하다.

입력

첫째 줄에 사람 수 NN이 주어진다 (1≤N≤10001 \le N \le 1000). 남자와 여자에게는 각각 1번부터 NN번까지 번호가 붙어 있다.

다음 NN개 줄 중 ii번째 줄에는 ii번 남자의 선호 목록이 주어진다. 1부터 NN까지의 수가 한 번씩 나오며, 더 좋아하는 여자의 번호가 앞에 온다.

그다음 NN개 줄 중 jj번째 줄에는 jj번 여자의 선호 목록이 같은 형식으로 주어진다.

출력

NN개의 줄을 출력한다. ii번째 줄에는 남자 최적 짝짓기에서 ii번 남자와 짝이 된 여자의 번호를 출력한다.

예제2

  1. 예제 1

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

    입력
    2
    1 2
    2 1
    2 1
    1 2
    
    예상 출력
    1
    2