글로벌 로밍

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

요약
구 형태의 지구 위 위성 위치와 여러 지상 지점이 주어질 때, 위성이 지평선 위에 보이는 지점들을 판별한다.
난이도

보통10점 중 4점

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

문제

오늘날 이동 통신의 상당 부분은 위성을 직접 바라볼 수 있는지에 달려 있다. 따라서 통신 사업자에게는 자사 서비스가 어디에서 이용 가능한지 아는 것이 매우 중요하다.

주어진 위성을 직접 바라볼 수 있는 지점, 즉 그 위성이 지평선 위에 떠 있는 지점들을 모두 찾아야 한다. 계산을 단순화하기 위해 지구는 반지름이 63786378 km인 완전한 구라고 가정한다(산악 지형은 내년에 추가될 예정이다...). 위성은 지표면 위에 떠 있는 하나의 점으로 취급한다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 확인할 지점의 개수 nn과 위성의 위치가 주어진다. 위성의 위치는 위도, 경도(둘 다 도 단위), 그리고 지표면으로부터의 높이(km 단위)로 표현된다.

이어지는 nn개의 줄에는 각각 지표면 위의 한 지점이 주어진다. 각 줄은 지점의 이름(공백을 포함하지 않는, 출력 가능한 ASCII 문자 6060개 미만의 문자열)과 그 지점의 위도, 경도(둘 다 도 단위)로 이루어진다.

입력은 n=0n=0인 줄로 끝난다.

출력

각 테스트 케이스마다 먼저 Test case k: 형태의 줄을 출력한다. 여기서 kk는 11부터 시작하는 테스트 케이스 번호이다. 그다음 위성이 보이는 지점들의 이름을, 입력에 나타난 순서 그대로 한 줄에 하나씩 출력한다.

연속한 두 테스트 케이스 사이는 빈 줄 하나로 구분한다.

예제1

  1. 예제 1

    입력
    3 20.0 -60.0 150000000.0
    Ulm       48.406    10.002
    Jakarta   -6.13     106.75
    Honolulu  21.32    -157.83
    2 48.4 10 0.5
    Ulm       48.406    10.002
    Honolulu  21.32    -157.83
    0 0.0 0.0 0.0
    
    예상 출력
    Test case 1:
    Ulm
    Honolulu
    
    Test case 2:
    Ulm