Logo
(追記) (追記ここまで)

32784번 - 가희와 신칸센 1

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB3611428.571%

문제

실제 도카이도 신칸센의 요금과 다름에 주의하세요.

도카이도 신칸센은 Tokyo 역에서부터 Shin-Osaka 역까지 500ドルkm$가 넘는 구간을 이어주는 노선입니다. Shin-Osaka 역에서 산요 신칸센과 직결됩니다. 해당 노선에는 등급이 낮은 순서대로 kodama, hikari, nozomi가 운행합니다. kodama는 시발역부터 종착역까지 거치는 모든 역에 정차하며, 상위 등급의 nozomihikari는 통과하는 역이 있습니다.

역명 hikari nozomi 위치 운임 거리 실 거리
Tokyo O O 도쿄도 치요다구 0 0
Shinagawa O O 도쿄도 미나토구 6.8 6.8
Shin-Yokohama O O 가나가와현 요코하마시 코호쿠구 28.8 25.5
Odawara しろさんかく 가나가와현 오다와라시 83.9 76.7
Atami しろさんかく 시즈오카현 아타미시 104.6 95.4
Mishima しろさんかく 시즈오카현 미시마시 120.7 111.3
Shin-Fuji 시즈오카현 후지시 146.2 135.0
Shizuoka しろさんかく 시즈오카현 시즈오카시 아오이구 180.2 167.4
Kakegawa 시즈오카현 카케가와시 229.3 211.3
Hamamatsu しろさんかく 시즈오카현 하마마츠시 주오구 257.1 238.9
Toyohashi しろさんかく 아이치현 토요하시시 293.6 274.2
Mikawa-Anjo 아이치현 안조시 336.3 312.8
Nagoya O O 아이치현 나고야시 나카무라구 366.0 342.0
Gifu-Hashima しろさんかく 기후현 하시마시 396.3 367.1
Maibara しろさんかく 시가현 마이바라시 445.9 408.2
Kyoto O O 교토부 교토시 시모교구 513.6 476.3
Shin-Osaka O O 오사카부 오사카시 요도가와구 552.6 515.4
이후 산요 신칸센과 직결

[표 1] 도카이도 신칸센 역 정보

[표 1]은 도카이도 신칸센 노선에 있는 역 정보를 의미합니다. Nagoya 역을 기준으로 Tokyo 역 방면으로 운행하면 동행, Shin-Osaka 방면으로 운행하면 서행으로 운행한다고 합니다. nozomi 열과 hikari 열은 해당 등급 열차의 정차 정보를 의미합니다. O는 전부 정차를 의미하며, しろさんかく는 선택 정차, 공백은 모두 통과를 의미합니다.

운임 거리란 운임 계산을 하기 위해 쓰이는 거리이고, 실거리는 실제 열차가 운행한 거리를 의미합니다. 이 두 거리가 [표 1]의 맨 끝 두 열에 있는데, 이는 Tokyo 역으로부터 누적 운임 거리와 누적 실거리를 나타내며, 단위는 $km$입니다. 도카이도 신칸센의 운임은 아래와 같이 계산됩니다.

  • Tokyo ~ Shinagawa 구간의 경우 일반선 요금이 적용됩니다.
  • 그 외의 경우 고속선 요금이 적용됩니다.
    • 단, Shin-Yokohama ~ Shinagawa 구간의 경우, 모든 등급이 kodama 등급의 요금으로 계산됩니다.

등급별 고속선과 일반선 요율은 [표 2]와 같습니다.

등급 고속선 요율 일반선 요율
kodama 300원/km 200원/km
hikari kodama 등급의 1.1배
nozomi kodama 등급의 1.2배

[표 2] 도카이도 신칸센의 등급별 요금

큰 도시로 출퇴근하는 사람들을 위해 일부 역에 시발하거나, 종착하는 경우가 있습니다. 아래 [표 3]은 시발, 종착, 혹은 둘 다 할 수 있는 역을 나타냅니다. 비고에 시발이 적혀 있는 경우 시발만 가능하며, 종착이 적혀 있는 경우 종착만 가능합니다. 없는 경우, 둘 다 가능한 역입니다.

역명 비고
Tokyo
Shinagawa 시발
Shin-Yokohama 시발
Mishima 시발
Shizuoka
Hamamatsu
Nagoya
Shin-Osaka

[표 3] 시발하거나 종착이 가능한 역 목록들

[표 3]에 등장하는 역들에서는, 항상 정차하는 등급의 열차들만 시발하거나 종착합니다. Mishima 역에서 출발하는 열차는 동행으로만 운행하며, Nagoya 역에 시발하거나 종착하는 열차는 아래 조건을 만족합니다.

  • Shin-Osaka 역에 시발하지도 않고, 종착하지도 않습니다.

hikari 등급의 정차 패턴은 Shin-Yokohama ~ Nagoya 구간 (1구간)과 Nagoya ~ Kyoto 구간 (2구간), 즉 두 구간의 정차 패턴을 가지고 알 수 있습니다. 먼저 1ドル$구간의 Rapid 패턴은 다음 세 조건 중 하나 이상을 만족합니다.

  • 구간의 시작 역과 끝 역을 제외하고, 2ドル$개 이하의 역에 정차합니다.
  • 무정차 거리가 200ドルkm$ 이상입니다.
  • 시즈오카시에 있는 역에 정차하지 않습니다.

그렇지 않으면 1구간에서 Normal 패턴입니다. 2구간에서 Rapid 패턴은 다음 조건을 만족합니다.

  • 2구간에서 nozomi 등급의 열차와 정차 패턴이 같습니다.

그렇지 않으면 2구간에서 Normal 패턴입니다.

또한, 해당 구간을 운행하는 모든 hikari 등급의 열차는 아래 조건을 추가로 만족합니다.

  • Maibara 역에 정차하지 않으면, Gifu-Hashima 역에 정차하지 않습니다.

hikari 등급의 열차가 정차할 수 있는 패턴은 [표 4]와 같습니다.

패턴 1구간 2구간 비고
1 Rapid Normal type 1 hikari
2 Normal Rapid type 2 hikari
3 Normal Normal 변칙 hikari
4 그 외의 경우 나올 수 없음

[표 4] 2개의 구간에서 hikari 등급의 정차 패턴

또한, 2구간을 운행하지 않는 경우, 1구간에서 Rapid 패턴으로 운행하지 않습니다. 또한 모든 열차는 다음 조건을 만족합니다.

  • 시발역에서 종착역까지 운임이 5ドル,000円$원 이상입니다. 고속선 요금이 적용되는 구간에서만 운행하는 경우, 시발역에서 종착역으로 이동하는 데 드는 비용은 33ドル,000円$원 이상입니다.
  • 시발역에서 종착역까지 하위 등급의 열차와 정차역 패턴이 같지 않습니다.

가희는 신칸센을 $Q$번 탔습니다. 각각에 대해 운행 정보가 주어졌을 때, 어느 등급을 탔는지 알려주세요.

입력

첫 번째 줄에 $Q$가 주어집니다.

다음에 $Q$개의 운행 정보가 주어집니다. 각 운행 정보는 아래와 같이 주어집니다.

  • 첫 번째 줄에 정차한 역의 수 $n$이 주어집니다.
  • 다음 $n$개의 줄에 정차한 역의 정보가 주어집니다. $i$번째로 주어진 역은, $i$번째로 정차한 역임을 의미합니다. 역의 정보는 두 형식 중 하나로 주어집니다.
    • {station_name}
    • {station_name} station

또한 운행 정보는 다음을 만족합니다. 정차한 역의 수가 $n$이고, $i$번째로 정차한 역 $s_{i}$와 $i+1$번째로 정차한 역 $s_{i+1}$에 대해 (1ドル ≤ i < n$)

  • 두 역이 서로 다른 역이라면, $s_{i}$번 역을 출발하여 $s_{i+1}$번째 역에 도착할 때까지 어떠한 곳에도 정차하지 않으며, 진행 방향을 바꾸지 않습니다.
  • 두 역이 도카이도 신칸센 노선에 있으면, $s_{i}$번 역을 출발하여 $s_{i+1}$번째 역에 도착할 때까지 도카이도 신칸센 외 다른 노선을 경유하지 않습니다.

출력

$Q$개의 줄에 걸쳐, 아래와 같이 출력해 주세요.

  • 주어진 데이터에 오류가 있다면 아래 포맷으로 출력해 주세요. error_id는 [표 5]의 케이스에 대응되며, 오류가 발생하는 케이스가 여러 개인 경우 가장 작은 $id$ 값을 출력해 주세요.
    • ERROR {error_id}
  • 그렇지 않으면, 운행 정보에 맞는 열차 등급을 출력해 주세요. 열차 등급은 kodama, hikari, nozomi 중 하나입니다.
id 케이스
200 도카이도 신칸센 노선에 없는 역이 나온 경우
300 같은 역을 2번 이상 방문한 경우
400 시발역에서 종착역으로 가는 도중 열차의 진행 방향이 1번 이상 바뀐 경우
500 나올 수 없는 운행 패턴인 경우
600 둘 이상의 등급이 해당 운행 패턴으로 운행할 수 있는 경우

[표 5] 에러 코드

역 이름이 동일하면 같은 역으로 취급합니다. 또한 역 이름은 대소문자를 구별합니다.

제한

  • 1ドル ≤ Q ≤ 500$
  • 2ドル ≤ n ≤ 50$
  • {station_name}은 알파벳 대소문자와 공백, 숫자로만 이루어져 있으며, 길이는 50ドル$을 넘지 않습니다.
  • {station_name}은 문자열 station으로 끝나지 않습니다.

예제 입력 1

2
4
Tokyo
Shinagawa
Shin-Yokohama
Nagoya
2
Nagoya
Shin-Yokohama

예제 출력 1

nozomi
ERROR 500

예제 입력 2

2
5
Tokyo
Shinagawa
Shin-Yokohama
Shinagawa
Tokyo
2
10 years
sakura

예제 출력 2

ERROR 300
ERROR 200

예제 입력 3

3
6
Tokyo
Shinagawa
Shin-Yokohama station
Nagoya
Kyoto station
Shin-Osaka
3
Candy
Candy
kyary pamyu pamyu
5
Tokyo station
Shinagawa station
Kyoto
Shin-Osaka station
Nagoya

예제 출력 3

nozomi
ERROR 200
ERROR 400

예제 입력 4

2
13
Tokyo
Shinagawa
Shin-Yokohama
Odawara
Atami
Mishima
Shin-Fuji
Shizuoka
Kakegawa
Hamamatsu
Toyohashi
Mikawa-Anjo
Nagoya
11
Tokyo
Shinagawa
Shin-Yokohama
Atami
Shizuoka
Hamamatsu
Nagoya
Gifu-Hashima station
Maibara
Kyoto
Shin-Osaka

예제 출력 4

kodama
hikari

예제 입력 5

2
2
Tokyo
Hakata world
6
Rapit
Thunder bird
sender bird
sonic
hakuto
love like this

예제 출력 5

ERROR 200
ERROR 200

힌트

출처

Contest > BOJ User Contest > 가희와 함께 하는 코딩 테스트 > 가희와 함께 하는 7회 코딩 테스트 10번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /