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

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

바이스 시티

면접 대비

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

요약
PayPhone에서 WKCharriot까지 가장 빠른 경로를 찾는다. 이동 시간은 운전하는 차량의 속도에 따라 달라지고, 차량을 바꿀 때마다 1분이 추가된다.
난이도

보통10점 중 6점

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

문제

"토미, 여기 바이스 시티에서 프로그래밍 대회가 열릴 거야. 코치 한 명이 문제 세트 사본을 훔쳐 갔어. 심사위원장이 그걸 되찾고 싶어 해. 그 코치가 묵는 호텔로 가서 처리하고 문제를 되찾아 와. 주소는 전화기 밑에 붙여 뒀어. 지금 당장 움직여!"

토미 버세티, 너에게는 어려운 일이 아니지! 공중전화에서 임무를 받은 뒤, 코치가 떠나기 전에 WK 채리엇 호텔에 도착해야 한다. 그것도 최대한 빨리. 안타깝게도 처음 타고 있는 차량은 충분히 빠르지 않을 수 있다. 다행히 바이스 시티에는 특정 차량이 항상 세워져 있는 고정된 장소들이 있다. 예를 들어 디아즈의 저택에는 인페르누스가 있다. 그래서 호텔로 가는 길에 차량을 여러 번 바꿔 탈 수 있다. 단, 차량을 바꿀 때마다 1분이 걸린다.

출발지는 PayPhone이며, 처음부터 그곳에 세워진 차량을 몰고 시작한다(이 최초 차량에는 교체 시간이 들지 않는다). 목적지는 WKCharriot이다. 도시의 장소 이름들과 연결된 장소 쌍 사이의 거리가 주어진다. 각 장소에 도착하면 언제든 그 장소에 있는 특정 차량을 탈 수 있다. 모든 차량의 최고 속도를 알고 있을 때, 호텔에 도착하기까지 걸리는 최소 시간을 구하여라. 계산을 단순하게 하기 위해 항상 현재 차량의 최고 속도로 달린다고 가정한다. 즉, 길이가 dd 킬로미터인 도로를 속도 ss km/h로 지나는 데 60⋅d/s60 \cdot d / s 분이 걸린다.

입력

첫째 줄에 테스트 케이스의 수를 나타내는 정수 tt (1≤t≤201 \le t \le 20)가 주어진다. 각 테스트 케이스는 세 부분으로 이루어지며, 연속한 두 부분은 정확히 한 개의 빈 줄로 구분된다.

첫 번째 부분은 mm개의 줄(1≤m≤1001 \le m \le 100)로 이루어지고, 각 줄은 vehicle speed 형식이다. vehicle은 차량의 고유한 이름이고 speed는 그 차량의 최고 속도를 나타내는 양의 정수(km/h)이다.

두 번째 부분은 nn개의 줄(2≤n≤5002 \le n \le 500)로 이루어지고, 각 줄은 location vehicle 형식이다. location은 장소의 고유한 이름이고 vehicle은 그 장소에 있는 차량이다. 장소 목록에는 항상 출발지 PayPhone과 목적지 WKCharriot이 포함된다.

세 번째 부분은 도로들을 나타내며, 각 줄은 loc1 loc2 distance 형식이다. 이는 loc1과 loc2 사이에 길이가 주어진 양의 정수(킬로미터)인 양방향 도로가 있음을 뜻한다. 이 부분은 별표 하나(*)만 있는 줄로 끝난다.

모든 차량 이름과 장소 이름은 공백이 없는 100자 이하의 영문자와 숫자로 이루어진 문자열이며, 대소문자를 구분한다. 한 줄 안의 항목들은 하나 이상의 공백으로 구분되고, 빈 구분 줄을 제외한 각 줄에는 앞뒤로 임의의 공백이 있을 수 있다.

출력

각 테스트 케이스마다 한 줄에, PayPhone에서 WKCharriot까지 이동하는 데 걸리는 최소 시간(분)을 출력한다. 목적지에 도달할 수 없으면 UNREACHABLE을 출력한다.

시간은 소수점 아래 정확히 세 자리까지 출력한다. 세 번째 자리보다 아래의 숫자는 반올림하지 않고 버리며(무시하며), 소수점 아래 자릿수가 세 자리보다 적으면 0으로 채운다.

예제1

  1. 예제 1

    입력
    2
    
    Infernus     280
    Cheetah      285
    PCJ600       250
    Stallion     180
    HotRingRacer 300
    
    Mansion         Infernus
    CarShowRoom     HotRingRacer
    VicePort        Cheetah
    NorthPointMall  Infernus
    PayPhone        PCJ600
    WKCharriot      Stallion
    
    PayPhone       CarShowRoom    10
    PayPhone       VicePort       15
    VicePort       WKCharriot     20
    CarShowRoom    Mansion        15
    Mansion        WKCharriot     15
    Mansion        NorthPointMall 5
    NorthPointMall WKCharriot     5
    *
    Caddy        80
    MrWhoopie    60
    Stretch      120
    CubanHermes  160
    Voodoo       170
    
    CherryPoppy  MrWhoopie
    Mansion      Stretch
    PayPhone     CubanHermes
    LittleHaiti  Voodoo
    WKCharriot   Caddy
    
    PayPhone      CherryPoppy    10
    CherryPoppy   LittleHaiti    15
    Mansion       WKCharriot     20
    *
    
    예상 출력
    8.400
    UNREACHABLE