등거리

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

앨리스와 밥은 오랫동안 만나지 못했다. 밥은 이것이 못마땅해서, 앨리스에게 이제는 시간을 내어 만나자고 계속 조른다.

앨리스: 중립 지대에서 만나는 게 좋겠어.

밥: 그 말, 2년 전에도 들었어.

앨리스: 알아. 그런데 너희 집과 우리 집에서 거의 같은 거리에 있는 적당한 장소를 아직 못 찾았어.

밥: 구면 위에서 주어진 두 점으로부터 같은 거리에 있는 점들의 자취는 대원(great circle)이야. 바로 두 점을 지나는 대원과 그 중점에서 직교하는 대원이지. 거리가 대략 같기만 하면 된다면, 폭이 몇 km에 길이가 약 40000 km인 띠가 되는데, 그 전부가 바다는 아니니 적당한 장소를 찾는 건 충분히 가능해.

앨리스: 아무거나 고르라고 하면 결국 호놀룰루로 가게 될걸.

밥: 나쁘지 않은 생각인데. 그럼 내가 마음대로 골라도 돼?

앨리스: 내가 꼭 받아들여야 하는 게 아니라면. 제안은 언제든 환영이야.

밥: 호놀룰루?

앨리스: 그게 방금 말한 그 자취 위에 있기는 해?

밥: 꼭 그렇지는 않아…

이제 본론으로 들어가자. 지구 표면 위의 두 지점이 주어지면, 두 지점으로부터 같은 거리에 있는 모든 점의 자취(대원)를 생각할 수 있다. 또 다른 한 지점이 주어졌을 때, 그 지점에서 이 자취까지의 표면 거리를 구하라. 지구는 반지름이 6378 km인 구라고 가정한다.

입력

입력은 두 부분으로 이루어진다: 지점 목록과 질의 목록이다.

지점 목록은 최대 100줄이며, 한 줄에 한 지점을 나타낸다. 각 줄은 공백으로 구분된 이름과 두 실수로 이루어지며, 각각 지점의 이름, 위도, 경도를 뜻한다. 이름은 서로 다르고, 길이가 30자 미만이며, 공백을 포함하지 않는다. 위도는 -90(남극)부터 90(북극)까지의 값이다. 경도는 -180부터 180까지의 값으로, 음수는 본초 자오선의 서쪽, 양수는 동쪽을 뜻한다(본초 자오선은 영국 그리니치를 지난다). 지점 목록은 # 한 글자만 있는 줄로 끝난다.

질의 목록의 각 줄에는 세 지점의 이름이 있다. 첫 번째는 앨리스의 집, 두 번째는 밥의 집, 세 번째는 만날 후보 지점이다. 질의 목록은 # 한 글자만 있는 줄로 끝난다.

출력

각 질의마다 다음 형식으로 한 줄을 출력한다.

M is x km off A/B equidistance.

여기서 M은 만날 후보 지점의 이름, AB는 두 집의 이름, x는 계산한 표면 거리를 가장 가까운 정수로 반올림한 값으로 바꾼다.

질의에 등장한 세 지점 중 하나라도 지점 목록에 없으면 거리 대신 ?를 출력한다.