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

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

동굴 탐사

면접 대비

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

요약
방 번호가 위에서 아래 순서인 DAG에서, 첫 간선과 마지막 간선이 서로 다른 1번 방에서 n번 방으로 가는 내리막 경로의 최대 개수를 구한다.
난이도

보통10점 중 6점

유형
그래프, 동적 계획법, BFS, DFS
정답자
아직 제출이 없습니다

문제

바이트 산맥의 거대 동굴에서 동굴 탐사대가 훈련을 한다. 훈련 동안 각 대원은 꼭대기 방(Top Chamber)에서 바닥 방(Bottom Chamber)까지 이어지는 경로 하나를 탐사한다. 대원은 아래로만 움직일 수 있다. 즉 경로에서 지나는 방은 한 단계마다 직전 방보다 반드시 더 아래(더 낮은 높이)에 있어야 한다.

또한 각 대원은 서로 다른 통로로 꼭대기 방을 출발해야 하고, 서로 다른 통로로 바닥 방에 도착해야 한다. 그 사이의 통로들은 여러 대원이 함께 지나가도 된다. 동시에 훈련할 수 있는 대원은 최대 몇 명인가?

다음을 수행하는 프로그램을 작성하라.

  • 표준 입력에서 동굴 정보를 읽는다.
  • 동시에 훈련할 수 있는 대원의 최대 수를 구한다.
  • 그 결과를 표준 출력에 쓴다.

입력

첫째 줄에 동굴의 방 개수 nn (2≤n≤2002 \le n \le 200)이 주어진다. 방은 위에서 아래로 11번부터 nn번까지 번호가 매겨져 있다. 즉 번호가 클수록 더 아래(더 낮은 높이)에 있으며, 꼭대기 방의 번호는 11, 바닥 방의 번호는 nn이다. 통로는 항상 번호가 작은 방에서 큰 방으로, 즉 아래 방향으로만 이어진다.

이어지는 n−1n-1개의 줄(둘째 줄부터 nn번째 줄까지) 중 i+1i+1번째 줄은 ii번 방에서 나가는 통로를 설명한다. 각 줄은 먼저 정수 mm (0≤m≤n−i+10 \le m \le n-i+1), 즉 ii번 방에서 나가는 통로의 개수로 시작하고, 이어서 그 통로들이 향하는 방의 번호 mm개가 주어진다. 이 번호들은 모두 ii보다 크다.

출력

동시에 훈련할 수 있는 대원의 최대 수를 나타내는 정수 하나를 한 줄에 출력한다.

힌트

예제3

  1. 예제 1

    입력
    12
    4 3 4 2 5
    1 8
    2 9 7
    2 6 11
    1 8
    2 9 10
    2 10 11
    1 12
    2 10 12
    1 12
    1 12
    
    예상 출력
    3
    
  2. 예제 2

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

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