세계 여행자
시간 제한1초메모리 제한128 MB
도시 이름과 위도, 경도를 입력받은 뒤 각 질의마다 두 도시 사이의 대권 거리를 반올림해 킬로미터 단위로 출력한다.
문제
ACM 프로그래밍 팀의 일원이 되면 곧 전 세계를 누비게 됩니다. 취리히, 필라델피아, 산호세, 애틀랜타처럼 대회가 열리는 도시는 매년 바뀌며, 어느 해에는 결승전이 다른 대륙에서 열리기도 합니다. 그래서 어느 해에는 일본이나 오스트레일리아까지 가게 될 수도 있습니다.
대회장에서 집으로부터 얼마나 멀리 떨어져 있는지 알 수 있다면 흥미로울 것입니다. 이를 위해, 지구 표면 위의 주어진 두 지점 사이의 지리적 거리를 계산하는 프로그램을 작성하세요.
지구는 반지름이 정확히 km인 완전한 구라고 가정합니다. 두 지점 와 사이의 지리적 거리는 와 를 잇는 측지선(지오데식) 선분의 길이입니다. 구 위의 두 점을 잇는 측지선 선분이란, 구의 표면 안에만 놓이는 가장 짧은 연결 곡선을 뜻합니다.
원주율 의 값은 약 으로 둡니다.
입력
입력은 도시 목록과 질의 목록의 두 부분으로 이루어집니다.
도시 목록
- 도시 목록은 최대 개의 줄로 이루어지며, 한 줄에 도시 하나가 들어갑니다. 각 줄에는 문자열 와 두 실수 , 가 있으며 각각 도시 이름, 위도, 경도를 나타냅니다.
- 도시 이름의 길이는 자 미만이며 공백 문자를 포함하지 않습니다.
- 위도는 (남극)에서 (북극) 사이입니다. 경도는 에서 사이이며, 음수는 본초 자오선의 서쪽, 양수는 동쪽 위치를 나타냅니다. (본초 자오선은 영국 런던 그리니치를 지납니다.)
- 도시 목록은
#문자 하나만 있는 줄로 끝납니다.
질의 목록
- 각 줄에는 두 도시 이름 와 가 있습니다.
- 질의 목록은
# #줄로 끝납니다.
출력
각 질의에 대해 먼저 A - B 형식의 줄을 출력합니다. 여기서 와 는 도시 이름으로 바뀝니다. 이어서 x km 형식의 줄을 출력하며, 는 두 도시 사이의 지리적 거리(km)를 가장 가까운 정수로 반올림한 값입니다.
질의에 등장한 도시 중 하나라도 도시 목록에 없으면, 대신 Unknown 을 출력합니다. 서로 다른 질의 사이에는 빈 줄을 하나 출력합니다.