유치원

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

요약
n명의 학생을 세 학급으로 나누되 아무도 작년 담임을 피하고 각 학급에서 모든 동급생이 서로의 선호 목록 상위 T 안에 들도록 하며 T를 최소화한다.
난이도

어려움10점 중 9점

유형
그래프, 이분 탐색, 그리디, 구현
정답자
아직 제출이 없습니다

문제

어느 유치원에는 세 명의 선생님이 있고, 각 선생님이 한 반씩을 맡는다. 새 학기가 시작되면 학생들을 이 세 반으로 나눠야 한다.

반을 나눌 때는 학생들의 친구 관계를 고려한다. 모든 학생은 다른 학생들의 이름을 자신이 좋아하는 순서대로 적어 제출했으며, 이 순서는 곧 같은 반이 되고 싶은 순서이기도 하다.

매년 새로운 학생이 들어와 빈자리를 채우므로 각 반의 학생 수는 서로 달라도 된다. 다만 어떤 선생님도 작년에 맡았던 학생을 올해 다시 맡지는 않는다.

목표는 모든 학생을 작년과 다른 반에 배정하되, 각 반에 대해 그 반의 어떤 학생이 제출한 선호 순서를 보더라도 같은 반의 나머지 학생이 모두 상위 TT위 안에 들도록 하는 것이다. 이때 TT를 가능한 한 작게 만들어야 한다.

입력

첫째 줄에 학생 수 nn (1≤n≤200)(1 \le n \le 200)이 주어진다. 학생의 번호는 11번부터 nn번까지이다.

다음 nn개의 줄에 각 학생의 정보가 주어진다. 각 줄의 첫 번째 정수는 그 학생을 작년에 맡았던 선생님을 나타내며 00, 11, 22 중 하나이다. 이어서 n−1n-1개의 정수가 주어지는데, 이는 자기 자신을 제외한 11번부터 nn번까지 모든 학생의 번호를 그 학생이 좋아하는 순서대로 나열한 것이다.

출력

다음 두 조건을 모두 만족하는 가장 작은 음이 아닌 정수 TT를 출력한다.

  • 어떤 학생도 작년에 자신을 맡았던 선생님의 반에 배정되지 않는다.
  • 각 반에서, 그 반의 어떤 학생이 제출한 선호 순서를 보더라도 같은 반의 나머지 학생이 모두 상위 TT위 안에 있다.

예제2

  1. 예제 1

    입력
    6
    0 2 3 4 5 6
    0 1 3 4 5 6
    1 6 5 4 2 1
    2 6 5 3 2 1
    1 1 2 3 4 6
    2 1 2 3 4 5
    
    예상 출력
    4
    
  2. 예제 2

    입력
    3
    0 2 3
    1 1 3
    2 1 2
    
    예상 출력
    0