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

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

소방 대피 훈련

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

요약
N개 건물을 대피시키되, 문서에 적힌 선행 건물이 아직 남아 있는 동안 대피할 때마다 벌점이 하나씩 늘어난다. 벌점을 최소로 하는 순서를 출력한다.
난이도

보통10점 중 6점

유형
위상 정렬, 그래프, 그리디
정답자
아직 제출이 없습니다

문제

소방 대피 훈련으로 N개의 건물을 모두 비운다. 각 건물에는 비우기 순서를 적은 문서가 있고, 문서에는 그 건물보다 먼저 비워야 하는 건물 번호가 나열된다. 어떤 건물을 비울 때 문서에 적힌 건물 중 아직 비우지 않은 것이 하나라도 있으면 벌점을 1개 받는다. 벌점 수를 최소화하는 비우는 순서를 찾는다.

입력

첫 줄에 세 정수 TT, NN, SS가 주어진다. TT는 테스트 번호, NN은 건물 수, SS는 평가에 쓰는 허용 벌점 상한이다. 건물 번호는 11부터 NN까지다.

다음 NN줄에 각 건물의 문서가 주어진다. ii번째 줄의 첫 정수는 건물 ii 문서에 들어 있는 건물 개수이고, 그 뒤에 문서에 적힌 건물 번호가 나온다. 서로 다른 두 건물이 동시에 서로의 문서에 들어 있지 않다. 어떤 문서에도 자기 자신은 없고, 같은 번호가 두 번 나오지 않는다.

출력

NN줄에 건물 번호를 하나씩 출력한다. 첫 줄이 가장 먼저 비울 건물, 다음 줄이 그다음 건물이다. 각 건물 번호는 정확히 한 번씩 나온다.

제한

N=1000N = 1000

예제1

  1. 예제 1

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