만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

세계 여행자

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

요약
도시 이름과 위도, 경도를 입력받은 뒤 각 질의마다 두 도시 사이의 대권 거리를 반올림해 킬로미터 단위로 출력한다.
난이도

쉬움10점 중 3점

유형
기하, 수학, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

ACM 프로그래밍 팀의 일원이 되면 곧 전 세계를 누비게 됩니다. 취리히, 필라델피아, 산호세, 애틀랜타처럼 대회가 열리는 도시는 매년 바뀌며, 어느 해에는 결승전이 다른 대륙에서 열리기도 합니다. 그래서 어느 해에는 일본이나 오스트레일리아까지 가게 될 수도 있습니다.

대회장에서 집으로부터 얼마나 멀리 떨어져 있는지 알 수 있다면 흥미로울 것입니다. 이를 위해, 지구 표면 위의 주어진 두 지점 사이의 지리적 거리를 계산하는 프로그램을 작성하세요.

지구는 반지름이 정확히 63786378 km인 완전한 구라고 가정합니다. 두 지점 AA와 BB 사이의 지리적 거리는 AA와 BB를 잇는 측지선(지오데식) 선분의 길이입니다. 구 위의 두 점을 잇는 측지선 선분이란, 구의 표면 안에만 놓이는 가장 짧은 연결 곡선을 뜻합니다.

원주율 π\pi의 값은 약 3.1415926535897933.141592653589793으로 둡니다.

입력

입력은 도시 목록과 질의 목록의 두 부분으로 이루어집니다.

도시 목록

  • 도시 목록은 최대 100100개의 줄로 이루어지며, 한 줄에 도시 하나가 들어갑니다. 각 줄에는 문자열 cic_i와 두 실수 latilat_i, longilong_i가 있으며 각각 도시 이름, 위도, 경도를 나타냅니다.
  • 도시 이름의 길이는 3030자 미만이며 공백 문자를 포함하지 않습니다.
  • 위도는 −90-90(남극)에서 +90+90(북극) 사이입니다. 경도는 −180-180에서 +180+180 사이이며, 음수는 본초 자오선의 서쪽, 양수는 동쪽 위치를 나타냅니다. (본초 자오선은 영국 런던 그리니치를 지납니다.)
  • 도시 목록은 # 문자 하나만 있는 줄로 끝납니다.

질의 목록

  • 각 줄에는 두 도시 이름 AA와 BB가 있습니다.
  • 질의 목록은 # # 줄로 끝납니다.

출력

각 질의에 대해 먼저 A - B 형식의 줄을 출력합니다. 여기서 AA와 BB는 도시 이름으로 바뀝니다. 이어서 x km 형식의 줄을 출력하며, xx는 두 도시 사이의 지리적 거리(km)를 가장 가까운 정수로 반올림한 값입니다.

질의에 등장한 도시 중 하나라도 도시 목록에 없으면, 대신 Unknown 을 출력합니다. 서로 다른 질의 사이에는 빈 줄을 하나 출력합니다.

예제1

  1. 예제 1

    입력
    Ulm		48.700	10.500
    Freiburg	47.700	9.500	
    Philadelphia	39.883	-75.250
    SanJose		37.366	-121.933
    NorthPole	90	0
    SouthPole	-90	0
    #
    Ulm Philadelphia
    Ulm SanJose
    Freiburg Philadelphia
    Freiburg SanJose
    Ulm Freiburg
    SanJose Philadelphia
    Ulm LasVegas
    Ulm Ulm
    Ulm NorthPole
    Ulm SouthPole
    NorthPole SouthPole
    # #
    
    예상 출력
    Ulm - Philadelphia
    6536 km
    
    Ulm - SanJose
    9367 km
    
    Freiburg - Philadelphia
    6519 km
    
    Freiburg - SanJose
    9412 km
    
    Ulm - Freiburg
    134 km
    
    SanJose - Philadelphia
    4023 km
    
    Ulm - LasVegas
    Unknown
    
    Ulm - Ulm
    0 km
    
    Ulm - NorthPole
    4597 km
    
    Ulm - SouthPole
    15440 km
    
    NorthPole - SouthPole
    20037 km