Задача 6: Лазерная пушка У игрока в космической стрелялке есть очень мощная лазерная пушка. Но она неподвижна и может стрелять только в одном направлении. Игрок может расставить на игровом поле двусторонние зеркала, меняющие ход луча, чтобы поражать врагов.
Введём декартову систему координат с центром, где расположена пушка, то есть пушка имеет координаты (0; 0). Пушка стреляет в направлении точки (1; 1). Игрок может поставить зеркала в точках с целочисленными координатами. Зеркала могут быть горизонтальными или вертикальными, попадание луча в зеркало меняет траекторию луча по законам отражения света. Некоторые возможные варианты отражения луча от зеркала изображены на рисунке.
Вам необходимо расставить минимальное количество зеркал так, чтобы лазерный луч поразил цель.
Входные данные
Программа получает на вход два целых числа X и Y, не превосходящих по модулю 10000, записанные в разных строках — координаты цели. Точка (X; Y) не совпадает с началом координат.
Выходные данные
Программа должна вывести в первой строке число N — необходимое количество зеркал.
Следующие N строк должны содержать информацию о каждом зеркале. В i-й строке должны быть записаны через пробелы два целых числа xi и yi и один символ ti, обозначающие координаты (xi; yi) точки, в которых установлено i-е зеркало, и тип этого зеркала ti. Если ti является символом «V», то i-е зеркало размещено вертикально, если же ti является символом «H», то зеркало размещено горизонтально. Например, строка «-2 5 H» обозначает горизонтальное зеркало в точке (-2; 5). Зеркала можно выводить в любом порядке. Зеркало нельзя размещать в точке (0; 0), также нельзя размещать два зеркала в одной точке. Значения xi и уi не должны по модулю превосходить 100000. Также, разумеется, нельзя допустить, чтобы отражённый луч попал в пушку.
Если вариантов ответа несколько, выведите любой из них.
Если поразить цель в соответствии с условиями задачи невозможно, программа должна вывести одно число «-1».
Если для поражения цели зеркала не нужны, программа должна вывести одно число "0"
Пример:
Ввод:
5, 1
Вывод:
1
3 3 H
Пояснение:
Ниже приведён рисунок, соответствующий этому примеру. Рисунок- 2
196
244
Ответы на вопрос:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
roma3456913.06.2023 15:26
-
КсенияКэт06.10.2021 19:44
-
valentinateleg260728.12.2021 06:36
-
ЕмелиЯна11.02.2022 21:59
-
alef91118.06.2020 00:38
-
irinatsotok705.12.2020 01:18
-
rom25224.03.2023 18:20
-
moldirkurmanbek19.09.2021 00:22
-
unclegoga0301.06.2020 06:41
-
sofyaoborina1206.11.2022 17:55
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.