Автор: | Dmitriy Merzlyakov | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 1512 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Перед прочтением условия задачи рекомендуется ознакомиться с задачей «Горы в галактике Дзета».
Юный программист Вася продолжает своё путешествие по галактике Дзета на космическом корабле. Корабль оборудован камерой с углом обзора 90 градусов, которая может фотографировать, а также транслировать изображение с соотношением сторон 1:1. Вася обнаружил в начале координат планету радиуса R, которая вращается с угловой скоростью ω вокруг оси z (ось, направляющий вектор которой равен {0, 0, 1} (см. рис. 1).
Если ω > 0, то планета вращается против часовой стрелки, и наоборот. На планете находится N гор. Гора номер i имеет высоту hi и в момент времени t = 0 координаты основания {xi, yi, zi}. Вася останавливает свой корабль и направляет камеру, которая находится в координатах (xc, yc, zc), в сторону вектора l⃗{xl, yl, zl}. Вертикальная ось камеры направлена в сторону вектора u⃗{xu, yu, zu} (положительное направление вертикальной оси – проще говоря, «верх» камеры) (см. рис. 2).
Вася хочет дождаться такого момента времени t, при котором в область видимости камеры попадёт максимально возможное количество вершин гор с этого ракурса. Поскольку нашего путешественника ждут другие планеты, ему требуется сделать фотографию до того, как планета совершит полный оборот с момента t = 0. Требуется написать программу, которая определит такое время t и выдаст список гор, видимых на фотографии в этот момент времени. Гора «видна», если на фотографию попала её вершина.
Для отладки решения вы можете использовать этот визуализатор.
Первые 4 строки содержат:
В следующих N строках содержатся вещественные числа xi, yi, zi, hi – координаты оснований гор и их высоты.
В первой строке требуется вывести одно число t – оптимальный момент времени для съёмки.
Во второй строке требуется вывести одно число k – количество гор, которые будут видны в кадре в момент времени t.
В следующих k строках требуется вывести упорядоченные по возрастанию номера видимых в кадре гор. Горы нумеруются в порядке расположения во входных данных, начиная с 1.
Если не существует момент t, при котором видна хотя бы одна вершина горы, выведите − 1. Если существует несколько оптимальных решений t, выведите любое из них.
50≤R≤500
− 30≤ω ≤30
− 5000≤xc, yc, zc, xl, yl, zl, xu, yu, zu, xi, yi, zi≤5000
R / 10≤hi≤R / 5
1≤N≤20000
Изображения вершин на камере никогда не совпадают.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|