푸시-투 망원경

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

문제

푸시-투 망원경은 한 번 설정되고 나면, 내장 목록에 있는 별을 보기 위해 망원경을 어느 방향으로 향해야 하는지 방위각(azimuth, 망원경의 기준 평면에서 반시계 방향으로 잰 각)과 고도(elevation, 기준 평면 위로 잰 각)로 알려 준다.

설정은 다음과 같이 이루어진다. 먼저 이미 알고 있는 별 하나에 망원경을 향한 뒤, 그 별을 목록에서 찾아 선택한다. 이어서 첫 번째 별과 너무 가깝지 않은 두 번째 알려진 별에 대해 같은 과정을 반복한다.

목록에 있는 별의 방향은 지심 적도 좌표계(geocentric equatorial coordinates)로 주어진다. 원점은 지구의 중심이고, 양의 $z$축은 북극을 지나며, $xy$평면은 적도를 담는다. $x$축은 춘분점(태양이 적도면에 있는 때)에서 태양을 향한다. 별의 좌표는 적경 $\alpha$($xy$평면에서 $x$축으로부터 반시계 방향으로 잰 각, 단위 도)와 적위 $\delta$($xy$평면 위(양) 또는 아래(음)로 잰 각)로 주어진다.

이 좌표계에서 지구는 초당 $\dfrac{2\pi \cdot 1.0027379093}{86400}$ 라디안의 각속도로 자전한다. (지구가 태양 주위를 돌기 때문에, 같은 지점 위로 태양이 다시 오게 하려면 $360^\circ$보다 조금 더 돌아야 한다.)

설정 중 별을 선택하면, 시스템은 시스템이 켜진 뒤 흐른 시각(초), 그 별을 향했을 때 망원경의 방위각과 고도, 그리고 목록에서 그 별의 번호를 기록한다. 알려진 별을 두 번 선택하고 나면, 시스템은 지심 적도 좌표에서 국소(망원경) 좌표로 가는 변환을 계산한다. 이후 관측할 별을 선택하면, 시스템은 그 별의 지심 적도 좌표와 현재 시각을 이용해 향해야 할 방위각과 고도를 계산한다.

푸시-투 망원경을 구현하는 프로그램을 작성하라.

망원경 좌표계가 지구와 함께 회전하므로, 별의 좌표에는 회전하는 지심 적도 좌표계를 쓰는 것이 편리하다. 이 좌표계는 시스템이 켜지는 순간 지심 적도 좌표계와 일치하고, 그 뒤로는 지구와 함께 회전한다. 이 좌표계에서 적위 $\delta$는 그대로이지만, 적경은 시간에 따라 변한다.

$$\alpha_{rot} = \alpha - t \cdot \text{rotation_rate}$$

여기서 $\alpha_{rot}$는 회전 좌표계에서의 적경(라디안), $\alpha$는 지심 적도 좌표계에서의 적경(라디안), $t$는 시스템이 켜진 뒤 흐른 시간(초), $\text{rotation_rate}$는 위에서 정의한 지구 자전 각속도이다.

입력

첫 줄에는 공백으로 구분된 두 정수가 주어진다. 첫 번째 정수는 목록에 있는 별의 수 $S$ ($0 < S \le 100$)이고, 두 번째 정수는 데이터 집합의 수 $P$ ($0 < P < 100$)이다.

다음 $S$개의 줄은 별 목록이다. 각 줄에는 공백으로 구분된 두 실수, 적경 $\alpha$와 적위 $\delta$가 도 단위로 주어진다. 별 목록은 하나뿐이며 모든 데이터 집합에 공통으로 사용된다. 각 데이터 집합은 이 목록을 이용해 서로 독립적으로, 동일한 방식으로 처리된다.

별 목록 다음에는 $P$개의 데이터 집합이 이어진다. 각 데이터 집합은 여러 줄로 이루어진다. 데이터 집합의 첫 줄에는 찾을 별의 수 $T$ ($T \le 10$)가 하나의 정수로 주어진다.

이어지는 두 줄은 그 데이터 집합의 설정 정보이다. 각 설정 줄에는 두 정수와 두 실수가 주어진다. 두 정수는 시스템이 켜진 뒤 흐른 시각 $t$(초)와 목록에서 그 알려진 별의 번호 $I$이다. 두 실수는 망원경 좌표에서 그 별의 방위각과 고도(도)이다.

데이터 집합의 남은 $T$개의 줄은 사용자가 관측하려는 별을 나타낸다. 각 줄에는 공백으로 구분된 두 정수가 주어진다. 첫 번째는 시스템이 켜진 뒤 흐른 시각(초)이고, 두 번째는 목록에서 관측할 별의 번호이다.

별의 번호는 $1$부터 시작한다.

출력

각 데이터 집합마다 여러 줄을 출력한다. 관측하려는 각 별에 대해 한 줄씩 출력한다. 계산된 고도가 $0$보다 작으면(별이 지평선 아래에 있으면) 그 줄에는 따옴표 없이 NOT VISIBLE을 출력한다. 그렇지 않으면 향해야 할 방위각과 고도를 도 단위로 소수점 아래 한 자리까지 출력한다. 방위각은 $[0, 360)$ 범위로 정규화하여 출력한다.