pavel266
10.08.2021 15:50

Тир давно были в тире? мы недавно. в нашем тире висят и стоят жестяные и алюминиевые банки из под различных напитков. точнее, висели и стояли. от наших выстрелов банки мотались из стороны в сторону на верёвке, срывались, звенели, мялись. это вам не из пальцев стрелять. каждая из пуль либо насквозь одной из банок, после чего поражённая банка упала на пол и откатилась в сторону так, что в неё было уже невозможно попасть; либо не попала ни в одну из банок. в любом случае, каждая из пуль застряла в стене, стоящей позади наших банок-мишеней. но тот день в осталась только стена с застрявшими в ней пулями и фотография. в попытке восстановить тот день и насладиться им снова мы собрали данные о положении каждой пули в стене, расположении банок и порядке выстрелов. определить про каждую пулю, поразила ли она какую-то из банок, и если поразила, то какую именно. формат входных данных в первой строке записаны два целых числа n и m (1≤m,n≤10^5) – количество банок, которые были нашей мишенью в тот день, и количество совершённых в тот день выстрелов. в i-ой из следующих n строк описывается положение i-ой банки. положение задаётся координатами проекции банки на вертикальную плоскость. проекция представляет из себя прямоугольник, стороны которого параллельны нанесённой на эту плоскость системы координат. ось y этой системы направлена вертикально вверх, а ось x – горизонтально. а прямоугольник задаётся парой точек – своей левой нижней и правой верхней вершинами. гарантируется, что ни одна пара этих прямоугольников не имеет ни одной общей точки. в i-ой из следующих m строк описывается положение i-ой пули в стене. пули заданы в том же порядке, в котором они выходили из наших дул. сама стена строго вертикальна, поэтому мы можем считать, что положение задаётся координатами проекции пуль на вертикальную плоскость. причём траектории движения пуль были строго перпендикулярна этой плоскости. сами точки парой координат в уже описанной выше системе координат. расстояние между банками и стеной по сравнению с расстоянием до стреляющих настолько мало, что мы им пренебрегаем. формат выходных данных в первой и единственной строке выведите m чисел, i-ое из которых говорит, какую из банок i-я пуля насквозь, если такая имеется. если i не задела ни одну банку, то выведите −1, иначе выведите порядковый номер во входных данных банки, которую поразила i-я пуля. sample input: 4 10 0 0 1 1 2 3 3 8 15 15 20 20 10 12 12 13 2 2 0 -1 23 18 13 12 10 13 16 16 17 17 3 5 3 5 3 3 sample output: -1 -1 -1 -1 4 3 -1 2 -1 -1

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Music05
12.06.2020 11:52

Константин Симонов
Если родилась красивой,
Значит, будешь век счастливой.

Если будешь гордой мужем —
Скажут: потому что нужен.
Как других, с ним разлучит могила —
Всем простят, тебя возьмут в немилость.
Позабудешь — скажут: не любила,
Не забудешь — скажут: притворилась.

Владаимр Высоцкий
Если друг оказался вдруг
И не друг, и не враг, а - так,
Если сразу не разберешь,
Плох он или хорош,-
Парня в горы тяни - рискни!
Не бросай одного его,
Пусть он в связке в одной с тобой -
Там поймешь, кто такой.

Если парень в горах - не ах,
Если сразу раскис и - вниз,
Шаг ступил на ледник и - сник,
Оступился - и в крик,-
Значит, рядом с тобой - чужой,
Ты его не брани - гони:
Вверх таких не берут, и тут
Про таких не поют.

Если ж он не скулил, не ныл,
Пусть он хмур был и зол, но - шел,
А когда ты упал со скал,
Он стонал, но - держал,
Если шел за тобой, как в бой,
На вершине стоял хмельной,-
Значит, как на себя самого,
Положись на него.

0,0(0 оценок)
Ответ:
vladognev2014
18.11.2021 17:17

Насколько я понял, множество - это просто все эти числа, только без повторений.

Заведем  массив boolen, где будем отмечать, есть ли данное число во множестве.

var

  a : array [1..15, 1..15] of integer;

  b : array [1..30] of boolean;

  i, j, n, m : integer;

begin

  read (n, m);

  for i := 1 to 30 do b[i] := false; //Зануление начальных значений

  for i := 1 to n do

    for j := 1 to m do

      a[i, j] := i +j; //Заполнение массива

  for i := 1 to n do

    for j := 1 to m do

      b[a[i, j]] := true; //Формирование множества

  for i := 1 to n do

  begin

    for j := 1 to m do

      write (a[i, j], '  ');

    writeln;

  end;

  for i := 2 to 30 do

    if b[i] then write (i, '  ');

end.

  

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота