택시 요금 계산

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

요약
각 도로의 길이와 1km당 소요 시간이 주어질 때, 두 도로 사이를 이동하는 승객의 요금을 구간별 단가와 심야·정체 할증을 적용해 계산한다.
난이도

보통10점 중 7점

유형
시뮬레이션, 구현, 수학, 누적 합
정답자
아직 제출이 없습니다

문제

택시 요금은 이동 거리, 시각, 교통 상황 등 여러 요소에 따라 달라집니다. 택시는 거리 S1,S2,…,SnS_1, S_2, \dots, S_n 을 이 순서대로 지나갑니다. 거리 SiS_i 의 길이는 LiL_i 킬로미터이며, 택시는 이 거리에서 일정한 속도로 달려 SiS_i 의 1킬로미터를 지나는 데 MiM_i 분이 걸립니다.

승객은 어떤 거리 SiS_i 의 시작 지점에서 타고, 그보다 뒤에 있는 거리 SjS_j 의 끝 지점에서 내립니다(승하차는 항상 거리의 끝에서 이루어지며, 거리 중간에서는 타거나 내리지 않습니다). 요금은 1킬로미터마다 다음과 같이 부과됩니다.

  • 처음 10킬로미터는 각 1000리알입니다.
  • 그다음 20킬로미터(11번째부터 30번째까지)는 각 250리알입니다.
  • 30번째 이후의 각 킬로미터는 100리알입니다.

여기에 두 가지 할증이 적용될 수 있습니다.

  • 야간 할증. 각 킬로미터를 따로 봅니다. 그 킬로미터를 달리는 동안 오전 12시부터 오전 6시 사이의 시간대에 1분 이상 주행했다면, 그 킬로미터는 20% 더 비쌉니다.
  • 정체 할증. 전체 이동의 평균 속도가 시속 30킬로미터 미만이면 요금이 10% 인상됩니다.

야간 할증은 킬로미터마다 먼저 더해지고, 그 합계에 10% 정체 할증을 한 번 적용합니다.

입력

입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 두 부분으로 구성됩니다.

첫 번째 부분은 택시가 지나가는 거리들을 주행 순서대로 한 줄에 하나씩 나열합니다.

거리이름 길이 분

거리이름 은 공백 없이 최대 20개의 영문자와 숫자로 이루어진 서로 다른 문자열이고, 길이 는 킬로미터 단위의 LiL_i(최대 200), 분 은 분 단위의 MiM_i 로 둘 다 양의 정수입니다. 각 거리는 정확히 한 번씩 등장합니다. 이 부분은 $ 문자 하나만 있는 줄로 끝납니다.

두 번째 부분은 다음 한 줄입니다.

출발거리 도착거리 시각

출발거리 와 도착거리 는 각각 승차 거리와 하차 거리의 이름이고, 시각 은 24시간제 HH:MM 형식의 승차 시각입니다. 두 거리는 모두 거리 목록에 있으며, 도착 거리는 출발 거리보다 앞서지 않습니다. # 문자 하나만 있는 줄이 각 테스트 케이스의 끝을 나타냅니다.

입력은 대시 두 개로 이루어진 -- 줄로 끝납니다.

출력

각 테스트 케이스마다 승객이 낸 요금을 한 줄에 출력합니다.

예제8

  1. 예제 1

    입력
    Khayyam 10 35
    15thKhordad 50 15 
    Pamenar 15 40
    $
    Khayyam Pamenar 07:15
    #
    Jenah 10 40
    Nouri 50 70
    Hemmat 30 25
    Chamran 80 80
    ValieAsr 30 20
    $
    Nouri ValieAsr 23:30
    #
    --
    
    예상 출력
    21758
    36432
    
  2. 예제 2

    입력
    Main 5 1
    $
    Main Main 10:00
    #
    --
    
    예상 출력
    5000
    
  3. 예제 3

    입력
    Ave 40 1
    $
    Ave Ave 09:00
    #
    --
    
    예상 출력
    16000
    
  4. 예제 4

    입력
    Dark 5 10
    $
    Dark Dark 02:00
    #
    --
    
    예상 출력
    6600
    
  5. 예제 5

    입력
    Long 20 20
    $
    Long Long 23:00
    #
    --
    
    예상 출력
    15840
    
  6. 예제 6

    입력
    X 3 5
    $
    X X 12:00
    #
    Y 12 2
    $
    Y Y 12:00
    #
    --
    
    예상 출력
    3300
    10500
    
  7. 예제 7

    입력
    A 5 1
    B 10 3
    C 8 3
    D 20 1
    $
    B C 14:00
    #
    --
    
    예상 출력
    13200
    
  8. 예제 8

    입력
    Road 30 2
    $
    Road Road 08:00
    #
    --
    
    예상 출력
    15000