В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
petrovskayaanna
petrovskayaanna
06.08.2022 15:51 •  Информатика

Через питон Задача 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».

Система оценивания
Решения, правильно работающие только для X ≥ 0 и Y ≥ 0, будут оцениваться в

Показать ответ
Ответ:
RedBalloon
RedBalloon
23.06.2020 02:15
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
begin
  // общая часть
  var a:=ReadArrInteger('Массив:',ReadInteger('n='));
  var b:=ReadInteger('b=');
  // часть для задачи 1
  var i:=a.IndexOf(b);
  if i<0 then Writeln('Нет совпадений')
  else WritelnFormat('1. A[{0}]={1}',i+1,a[i]);
  // часть для задачи 2
  Writeln('2. k=',a.Where(x->x=b).Count);
  // часть для задачи 3
  var s:=a.Select((x,i)->x=a[i+1:a.Length].Sum).ToArray;
  var k:=s.IndexOf(True);
  if k>=0 then WritelnFormat('3. A[{0}]={1}',k+1,a[k])
  else Writeln('3. Не существует')
end.

Тестовое решение:
n= 10
Массив: -9 21 0 -9 21 6 -2 14 18 -15
b= -9
1. A[1]=-9
2. k=2
3. A[5]=21
0,0(0 оценок)
Ответ:
sitkovskiygleb
sitkovskiygleb
08.08.2020 12:54
Авторские права нигде регистрировать не надо. Они возникают по факту создания чего либо. Написал контрольную у тебя авторские права на нее, не зависимо от оценки которую тебе поставят. Тоже самое с любым изделием, программой и тд
Обычно чтоб указать на автора ставят значек копирайта (с), © и имя автора или компании
А вот доказать, что авторские права принадлежат именно вам, а не дяде из Саратова гораздо сложнее. Простым подтверждения является публикация исходного кода в открытых источниках с четким обозначением времени и даты публикации. Но делать это глупо, если вы собираетесь продавать свой продукт.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота