eolymp
bolt
Try our new interface for solving problems
Məsələlər

Луч света

Луч света

\textit{Свет мой, зеркальце! Скажи,} \textit{Да всю всю правду доложи,} \textit{Мне поведай по секрету,} \textit{Ставить где источник света?} Разговор студента Института Точной Магии и Оптики с Волшебным Зеркалом На координатной плоскости есть поле, ограниченное квадратом с вершинами (\textbf{0}, \textbf{0}), (\textbf{N}, \textbf{0}), (\textbf{N}, \textbf{N}), (\textbf{0}, \textbf{N}). В некоторых внутренних точках поля с целочисленными координатами установлены двухсторонние зеркала, расположенные под углом \textbf{45°} к координатной оси и отражающие свет (в каждой точке может находиться не более одного зеркала, которое устанавливается так, чтобы его центр совпал с соответствующей точкой). На границе зеркал нет. Зеркала бывают двух типов: зеркала первого типа параллельны прямой \textbf{x} + \textbf{y} = \textbf{0}, а второго типа - прямой \textbf{x} -- \textbf{y} = \textbf{0}. Все зеркала имеют пренебрежимо малую толщину. Примеры отражения луча зеркалами разного типа изображены на рисунках. \includegraphics{https://static.e-olymp.com/content/d2/d28942435a0adec842955da224f9e079e1a10d00.jpg} Зеркало второго типа Зеркало первого типа Кроме того, на правой границе в точке с координатами (\textbf{N}, \textbf{T}) находится мишень, в которую нужно попасть лучом. Напишите программу, которая найдет точку с целочисленными координатами на границе, в которой можно расположить источник света таким образом, чтобы свет, пройдя по полю и возможно отразившись от нескольких зеркал, попал в заданную мишень. Источник света не может располагаться в одной точке с мишенью и должен быть установлен таким образом, чтобы испускаемый им луч был перпендикулярен границе в этой точке. \InputFile В первой строке находится три целых числа: размер поля \textbf{N}, координата точки с мишенью \textbf{T} и количество зеркал на поле \textbf{M} (\textbf{0} < \textbf{T} < \textbf{N} < \textbf{500}, \textbf{0} <= \textbf{M} <= (\textbf{N}-\textbf{1})\textbf{^2}). Далее идет \textbf{M} строк, каждая из которых описывает одно зеркало тремя целыми числами \textbf{x}, \textbf{y} и \textbf{a}, где (\textbf{x}, \textbf{y}) - координаты точки, в которой расположено зеркало (\textbf{0} < \textbf{x}, \textbf{y} < \textbf{N}), \textbf{a} - тип зеркала (\textbf{1} или \textbf{2}). \OutputFile В первой строке выведите два целых числа -- координаты точки на границе поля, в которой должен находиться источник света. Во второй строке выведите целое число, определяющее, сколько раз луч отразится в зеркалах по пути от источника до мишени. Если такой точки не существует, выведите одно число \textbf{-1}. Если таких точек несколько, можно выбрать любую из них.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
5 4 4
1 1 1
3 1 2
1 3 2
3 4 2
Çıxış verilənləri #1
5 3
4
Müəllif Янушкевич В.А.