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

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

국경 제한

면접 대비

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

요약
N개 국가와 각 국가가 입국을 허용하는 출발 국가 목록이 주어질 때, 첫 번째 국가에서 시작한 바이러스가 각 국가에 도달하는 주차를 구하고 도달할 수 없으면 0을 출력한다.
난이도

보통10점 중 5점

유형
그래프, BFS, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

바이러스의 확산을 막기 위해 많은 나라가 특정 국가에서 오는 여행자의 입국을 막고 있다. 시간이 지나면서 여러 사람이 여러 나라로 여행하고, 바이러스는 여전히 나라 사이를 옮겨 다닐 수 있다. 어떤 나라에서 바이러스가 시작되면, 다른 나라로 퍼지는 데 얼마나 걸릴까? 바이러스가 ii주차에 한 나라에 있고 두 번째 나라가 첫 번째 나라에서 오는 여행자를 허용하면, 바이러스는 i+1i+1주차에 두 번째 나라에 도달한다고 가정한다. 바이러스가 한 나라에 도달하면 백신이 개발될 때까지 그 나라에 영원히 남는다.

입력

첫째 줄에 세계의 나라 수 NN이 주어진다. 1≤N≤3001 \le N \le 300. 다음 NN개 줄에 각 나라를 나타내는 정보가 주어진다. 각 줄은 DESTINATION allows travellers from ORIGIN1 ORIGIN2 ORIGIN3 형태이고, DESTINATION, ORIGIN1, ORIGIN2, ORIGIN3는 A부터 Z까지의 대문자로 이루어진 길이 30 이하의 나라 이름이다. 모든 나라의 이름은 서로 다르다. 한 줄에 올 수 있는 출발 국가의 수는 0개일 수도 있고 N−1N-1개일 수도 있으며, 항상 세 개인 것은 아니다. 또한 각 줄의 출발 국가는 서로 다르고 도착 국가를 포함하지 않는다. 첫 주에 바이러스는 입력에 처음 나온 나라에만 있다.

출력

NN개 줄에 각 나라의 정보를 사전순으로 출력한다. 각 줄에 나라 이름과 바이러스가 그 나라에 도달하는 주차를 출력한다. 어떤 나라에 바이러스가 절대 도달할 수 없으면, 도달하는 주차 대신 0을 출력한다.

예제1

  1. 예제 1

    입력
    3
    CANADA allows travellers from USA
    MEXICO allows travellers from USA
    USA allows travellers from CANADA MEXICO
    
    예상 출력
    1
    3
    2