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

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

철도

면접 대비

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

요약
정차 시각이 주어진 기차 시간표에서 출발 가능 시각 이후에 출발해 도착 시각이 가장 이르고, 그중 출발 시각이 가장 늦은 경로를 찾는다.
난이도

보통10점 중 6점

유형
그래프, 최단 경로, 정렬, 구현
정답자
아직 제출이 없습니다

문제

지원(Jill)은 내일 이른 아침에 한 도시에서 다른 도시로 이동해 프로그래밍 대회장에 도착해야 한다. 늦게 도착해 참가하지 못하는 일을 피하려고 최대한 이른 시각에 목적지에 도착하고 싶다. 다만 역에서 너무 오래 기다리는 것도 싫어서, 도착 시각이 같은 여러 방법이 있다면 출발 도시에서 가장 늦게 출발하는 방법을 고른다.

여러 열차 시간표가 주어진다. 출발 도시, 목적지 도시, 그리고 가능한 가장 이른 출발 시각이 주어질 때, 목적지에 가장 이른 시각에 도착하는 연결을 찾아라. 그런 연결이 여러 개라면 출발 도시에서의 출발 시각이 가장 늦은 것을 고른다.

환승에는 시간이 전혀 걸리지 않는다. 즉 지원은 0의 시간에 즉시 열차를 갈아탈 수 있다. 또한 열차가 정차하는 어느 역에서든 타고 내릴 수 있다.

입력

입력은 여러 개의 시나리오로 이루어진다. 각 시나리오는 세 부분으로 구성된다.

1부 — 도시. 정수 CC (1≤C≤1001 \le C \le 100)가 적힌 줄 하나에 이어, 도시 이름이 한 줄에 하나씩 CC개 주어진다. 도시 이름은 알파벳 글자로만 이루어진다.

2부 — 열차. 정수 TT (T≤1000T \le 1000)가 적힌 줄 하나에 이어, TT개의 열차 설명이 주어진다. 각 열차 설명은 정수 tit_i (ti≤100t_i \le 100)가 적힌 줄 하나로 시작하고, 그 뒤에 tit_i개의 줄이 이어진다. 각 줄에는 시각과 도시 이름이 있으며, 그 시각에 그 도시에서 승객이 타거나 내릴 수 있음을 뜻한다. 시각은 24시간제 hhmm 형식이다.

3부 — 질의. 세 줄로 이루어진다. 첫 줄은 여정을 시작할 수 있는 가장 이른 시각, 둘째 줄은 출발 도시 이름, 셋째 줄은 목적지 도시 이름이다. 출발 도시와 목적지 도시는 항상 서로 다르다.

CC 자리에 00 하나만 있는 줄은 입력의 끝을 나타내며 처리하지 않는다.

출력

각 시나리오마다 먼저 Scenario #n 줄을 출력한다. 여기서 nn은 11부터 시작하는 시나리오 번호다.

연결이 존재하면 두 줄을 더 출력한다. 첫 줄은 Departure, 출발 시각(네 자리, 앞을 0으로 채움), 출발 도시 순이다. 둘째 줄은 Arrival, 도착 시각(네 자리, 앞을 0으로 채움), 목적지 도시 순이다. 시각이 세로로 맞도록 공백을 넣는다. 예제와 똑같이 Departure 뒤에는 공백 한 칸, Arrival 뒤에는 공백 세 칸을 둔다.

같은 날 안에(즉 자정 이전에) 목적지에 도착하는 연결이 없으면 대신 No connection 한 줄을 출력한다.

이어지는 시나리오 사이는 빈 줄 하나로 구분한다.

예제3

  1. 예제 1

    입력
    3
    Tuttlingen
    Constance
    Freiburg
    3
    2
    0949 Tuttlingen
    1006 Constance
    2
    1325 Tuttlingen
    1550 Freiburg
    2
    1205 Constance
    1411 Freiburg
    0800
    Tuttlingen
    Freiburg
    2
    Ulm
    Vancouver
    1
    2
    0100 Ulm
    2300 Vancouver
    0800
    Ulm
    Vancouver
    0
    
    예상 출력
    Scenario #1
    Departure 0949 Tuttlingen
    Arrival   1411 Freiburg
    
    Scenario #2
    No connection
    
  2. 예제 2

    입력
    2
    Alpha
    Beta
    3
    2
    0800 Alpha
    0900 Beta
    2
    0830 Alpha
    0900 Beta
    2
    0700 Alpha
    1000 Beta
    0600
    Alpha
    Beta
    0
    
    예상 출력
    Scenario #1
    Departure 0830 Alpha
    Arrival   0900 Beta
    
  3. 예제 3

    입력
    3
    North
    South
    East
    1
    2
    0800 North
    0900 East
    0700
    North
    South
    0
    
    예상 출력
    Scenario #1
    No connection