지하철 요금

면접 대비

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

요약
정거장 수별 요금표와 순서대로 나열된 역 이름들이 주어질 때, 두 역 사이의 정거장 수를 구해 해당 요금을 출력한다.
난이도

쉬움10점 중 3점

유형
배열, 문자열, 구현, 해시맵
정답자
아직 제출이 없습니다

문제

지하철을 이용하는 여행자가 가장 먼저 궁금해하는 것 중 하나는 “이번 여행에 요금이 얼마나 들까?”이다. 이 정보를 명확하게 보여 주는 일은 간단해야 하지만, 실제로는 역 곳곳에 붙어 있는 여러 표를 찾아본 뒤 번거로운 계산을 해야 할 때가 있다. 그래서 이를 대신 계산해 주는 프로그램을 작성하려고 한다.

하나의 지하철 노선만 생각한다. ss개의 정거장을 지나는 이동의 요금이 얼마인지를 알려 주는 요금표가 각 s≥1s \ge 1에 대해 주어진다. 또한 노선에 있는 역들의 이름이 순서대로 주어지고, 출발역과 도착역의 이름도 주어진다. 요금을 구하여라. 노선은 양방향으로 이용할 수 있으므로 두 역 사이의 정거장 수만 중요하다.

입력

첫째 줄에 데이터 집합의 개수 KK가 주어진다. 이어서 KK개의 데이터 집합이 다음 형식으로 주어진다.

각 데이터 집합의 첫째 줄에는 이 노선의 역 개수를 나타내는 정수 nn (2≤n≤502 \le n \le 50)이 주어진다. 그 다음 n−1n - 1개의 줄은 요금표로, ss번째 줄에는 ss개의 정거장을 이동할 때의 요금을 나타내는 정수가 주어진다 (s=1s = 1은 탑승한 다음 정거장에서 내리는 경우를 뜻한다). 그 다음 nn개의 줄에는 노선을 따라 순서대로 각 역의 이름이 한 줄에 하나씩 주어지며, 모든 이름은 소문자 알파벳으로만 이루어지고 서로 다르다.

마지막 두 줄에는 출발역의 이름과 도착역의 이름이 주어진다. 두 이름 모두 역 목록에 있으며 서로 다르다.

출력

각 데이터 집합마다 Data Set x: 형식의 줄을 출력한다. 여기서 x는 데이터 집합의 번호이다(1부터 시작). 그 다음 줄에 이동 요금을 출력한다. 연속한 데이터 집합 사이는 빈 줄 하나로 구분한다.

예제1

  1. 예제 1

    입력
    2
    3
    1
    13
    unionstation
    usc
    culvercity
    unionstation
    usc
    4
    2
    3
    4
    citycenter
    hollywood
    ucla
    beach
    beach
    hollywood
    
    예상 출력
    Data Set 1:
    1
    
    Data Set 2:
    3