찢어진 노선도

면접 대비

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

요약
찢어진 조각으로 지하철 연결도를 복원해서 출발역에서 도착역까지 지나는 역을 순서대로 출력하고 경로가 없으면 없다고 알립니다.
난이도

보통10점 중 4점

유형
그래프, BFS
정답자
아직 제출이 없습니다

문제

대도시에 도착했지만 여정은 아직 끝나지 않았다. 지하철을 타고 최종 목적지까지 가야 한다. 역 안내소는 비어 있고 노선도도 다 떨어졌다. 바닥을 보니 찢어진 노선도 조각이 흩어져 있다. 이 조각을 맞춰서 목적지까지 가는 길을 알아낼 수 있을까?

조각 하나에는 역 하나가 온전히 담겨 있고, 그 역과 직접 이어진 다른 역의 이름이 빠짐없이 적혀 있다. 두 역을 잇는 구간은 양방향이라 어느 쪽으로도 이동한다. 찾은 조각을 모두 사용해서 출발역에서 목적지까지 지나는 역의 순서를 구하라. 조각이 모자라 경로를 알아낼 수 없으면 경로가 없다고 답하라.

입력

첫째 줄에 찾은 노선도 조각의 개수 NN이 주어진다. (2≤N≤322 \le N \le 32)

다음 NN개의 줄에는 조각에 그려진 역을 한 줄에 하나씩 설명한다. 각 줄은 설명하는 역의 이름으로 시작하고, 그 뒤에 그 역과 직접 이어진 역의 이름이 공백으로 구분되어 나열된다. 이어진 역은 최대 N−1N-1개다.

마지막 줄에는 출발역과 목적지 역의 이름이 주어진다. 목적지 역은 출발역과 다르다.

역 이름은 알파벳 대소문자로만 이루어진 길이 20 이하의 문자열이고, 대소문자는 구분한다. 출발역에서 목적지까지 같은 역을 두 번 지나지 않는 경로는 많아야 하나다.

출력

출발역에서 목적지까지 지나는 역의 이름을 순서대로 공백으로 구분해 한 줄에 출력한다. 출발역과 목적지 역도 포함한다. 조각이 모자라 경로를 찾을 수 없으면 no route found를 출력한다.

예제3

  1. 예제 1

    입력
    3
    Uptown Midtown
    Midtown Uptown Downtown
    Downtown Midtown
    Uptown Downtown
    
    예상 출력
    Uptown Midtown Downtown
    
  2. 예제 2

    입력
    6
    A B
    B A D
    C D
    E D F G
    F E
    G E
    F A
    
    예상 출력
    F E D B A
    
  3. 예제 3

    입력
    4
    FirstStop SecondStop
    SecondStop FirstStop ThirdStop
    FifthStop FourthStop SixthStop
    SixthStop FifthStop
    FirstStop FifthStop
    
    예상 출력
    no route found