Телескоп Push-To#5131

Телескоп Push-To

1 секунда
32 мегабайти
Легка

Як тільки Push-To телескоп налаштовано, він показує, куди навести телескоп, щоб побачити зірку з вбудованого каталогу, надаючи азимут (кут проти годинникової стрілки в базовій площині телескопа) та висоту (кут над базовою площиною телескопа). Телескоп ініціалізується наведенням на відому зірку, пошуком зірки в каталозі та її вибором. Цей процес повторюється для другої відомої зірки, яка не повинна бути надто близько до першої.

Напрямок зірок у каталозі задається у геоцентричних екваторіальних координатах. Початок координат знаходиться в центрі Землі. Додатна вісь z проходить через Північний полюс, а площина xy містить екватор. Вісь x вказує на сонце під час весняного рівнодення (коли сонце знаходиться в екваторіальній площині). Координати зірки — це пряме піднесення (кут у площині xy проти годинникової стрілки від осі x, у градусах) і схилення (кут вище (додатній) або нижче (від'ємний) площини xy).

У цій системі координат Земля обертається зі швидкістю 2 \cdot 1.0027379093 / 86400 радіан за секунду. (Оскільки Земля рухається навколо Сонця, вона повинна обернутися більше, ніж на градусів, щоб повернути Сонце на те саме місце.)

Під час налаштування, коли ви обираєте зірку, система записує час (у секундах з моменту включення системи), азимут і висоту телескопа при наведенні на зірку, а також індекс зірки в таблиці. Після вибору двох відомих зірок система розраховує перетворення з геоцентричних екваторіальних координат у локальні координати. Після цього, коли ви обираєте зірку для спостереження, система використовує геоцентричні екваторіальні координати зірки та поточний час для обчислення азимуту та висоти для наведення на зірку.

Напишіть програму для реалізації Push-To телескопа.

Оскільки система координат телескопа обертається разом із Землею, може бути корисним використовувати обертову геоцентричну екваторіальну систему координат для координат зірок. Ця система співпадає з геоцентричними екваторіальними координатами при ввімкненні системи та надалі обертається разом із Землею. У цій системі схилення залишається тим самим, але кут прямого піднесення змінюється з часом:

\alpha_{\text{rot}} = \alpha - t \cdot \text{rotation\_rate}

де \alpha_{\text{rot}} — кут прямого піднесення в обертовій системі (в радіанах), — кут прямого піднесення у геоцентричних екваторіальних координатах (у радіанах), — це час у секундах з моменту ввімкнення системи, а — це швидкість обертання Землі, наведена вище.

Вхідні дані

Перший рядок вхідних даних містить два десяткових цілих числа, розділених пробілом. Перше число задає кількість зірок у каталозі (0 < S \leq 100), друге — кількість наборів даних (0 < P < 100).

Наступні рядків містять таблицю зірок. Кожен рядок складається з одного цілого числа та двох чисел з плаваючою комою, розділених пробілами. Ціле число — це індекс зірки, числа з плаваючою комою — пряме піднесення () і схилення () у градусах. Одна таблиця зірок використовується для всіх наборів даних. Кожен набір повинен оброблятися однаково та незалежно, використовуючи цю таблицю.

Після таблиці слідує наборів задачі. Кожен набір складається з кількох рядків. Перший — два цілі числа через пробіл: номер набору і кількість зірок для знаходження (T \leq 10).

Далі йдуть два рядки з даними налаштування. Кожен містить два цілі і два числа з плаваючою комою: — кількість секунд з моменту запуску системи, — індекс відомої зірки, а також її азимут і висоту в градусах (у координатах телескопа).

Залишилося рядків у наборі — кожен із трьома цілими числами: номер підзадачі зірки, час (у секундах з моменту запуску системи) та індекс зірки для спостереження в таблиці.

Вихідні дані

Для кожного набору даних виводиться кілька рядків. Перший містить номер набору й через пробіл кількість зірок, які користувач бажав спостерігати (). Для кожної зірки — окремий рядок. Якщо обчислена висота менше нуля (зірка знаходиться нижче горизонту), рядок містить номер підзадачі та фразу NOT VISIBLE (без лапок). В іншому — номер підзадачі, потім азимут і висота у градусах з точністю до одного десяткового знака.

Приклади

Приклад 1

Loading
Loading