Множества

53 задачи
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Алиса и Юля, ученицы 6-В класса одной из московских школ, вместе готовятся к олимпиаде по программированию. Для того, чтобы хорошо выступить на олимпиады, они должны решить все задачи тренировочного контеста.

Всего у девочек n задач. Алиса может точно решить p задач контеста. А Юля может решить только q задач этого же контеста. У вас есть информация о номерах задач, которые может решить Алиса, и номера задач, которые может решить Юля. Смогут ли девочки решить все задачи этого контеста и хорошо выступить на олимпиаде, если объединят свои усилия и будут решать контекст вместе?

 

Входные данные

В первой строке записано единственное целое число n (1 <=  n <= 100).

В следующей строке сначала записано целое число (0 <= p <=n), затем следуют p различных целых чисел a1, a2, ..., ap (1 <= ai<= n). Эти числа обозначают номера задач, которые может решить Алиса. В следующей строке содержатся номера задач, которые может решить Юля, в аналогичном формате. Предполагается, что задачи пронумерованы от 1 до n.


Выходные данные

Если подружки могут решить все задачи вместе, выведите «I'm winner!». Если это невозможно, выведите «Oh!» (без кавычек) и с новой строки задачи, которые девочки решить не могут (номера задач следует выводить в порядке возрастания через один пробел).

 
Примеры
Входные данные Выходные данные
1
4
3 1 2 3
2 2 4
I'm winner!
2
5
3 1 2 3
2 2 3
Oh!
4 5
✓ 147✗ 526600лёгкаяВойти и решать
Дениска хочет отправиться в космическое путешествие на кораблях с варп-двигателями. Для этого он купил космическую дорожную карту. На первой открытой межгалактической варп-линии, управляемой МТК (Межзвездной транспортной компанией), есть N станций. i-я станция (1<=i<=N) от начальной станции называется Si.
Обычные космические корабли останавливаются на всех станциях, в то время как варп-корабли (космические корабли с варп-двигателями) останавливаются только на M (M <= N) станциях, а j-я станция (1 <= j <= M) - это станция с именем Tj.
Здесь гарантируется, что T1 = S1 и T= SN , то есть варп-корабли останавливаются как на начальной, так и на конечной станциях.
Дениска хочет прокатиться на варп-корабле. Для каждой из N станций определите, сможет ли Дениска попасть на эту станцию на варп-корабле.

Входные данные
Программа получает на вход три строки. Первая строка содержит два целых числа N и M (2 <= M <= N <=105). Вторая строка содержит N различных слов Si (1 <= i <= N, ), разделенных пробелом - название станций, на которых останавливаются обычные космические корабли. Третья строка содержит M различных слов Tj (1 <= j <= M, ), разделенных пробелом - название станций, на которых останавливаются варп-корабли. Все слова в третьей строке (T1,...,TM) получается путем удаления нуля или более строк из (S1,...,SN) и выстраиванием оставшихся слов в ряд, не меняя порядок. 

Выходные данные
Выведите N строк. i-я строка (1<= i <=N) должна содержать Yes, если Дениска доберется на варп-корабле до i-й станции от начальной станции, иначе - No.
 
 
Примеры
Входные данные Выходные данные
1
5 3
andoria kanda badjor betazed ueno
andoria badjor ueno
Yes
No
Yes
No
Yes
2
7 7
a b c d e f g
a b c d e f g
Yes
Yes
Yes
Yes
Yes
Yes
Yes
✓ 1 360✗ 2 780400лёгкаяВойти и решать
Широко известна следующая задача для младших школьников. Три черепахи ползут по дороге. Одна черепаха говорит: “Впереди меня две черепахи”. Другая черепаха говорит: “Позади меня две черепахи”. Третья черепаха говорит: “Впереди меня две черепахи и позади меня две черепахи”. Как такое может быть? Ответ: третья черепаха врет!

По дороге одна за другой движутся N черепах. Каждая черепаха говорит фразу вида: “Впереди меня ai черепах, а позади меня bi черепах”. Ваша задача определить самое большое количество черепах, которые могут говорить правду.

Входные данные
В первой строке вводится целое число N (1 ≤ N ≤ 10000) . Далее следуют N строк, содержащих целые числа ai и bi, по модулю не превосходящие 10000, описывающие высказывание i-ой черепахи.

Данные о высказываниях черепах приведены в произвольном порядке, то есть первое высказывание не обязательно соответствует черепахе, идущей во главе колонны, второе - не обязательно следующей за ней и так далее

Выходные данные
Выведите целое число M – максимальное количество черепах, которые могут говорить правду.
 
Примеры
Входные данные Выходные данные
1 3
2 0
0 2
2 2
2
Фермер Джон открыл пастбище с целью помочь Беси и её друзьям.
Пастбище ФД можно рассматривать как большую 2D-решётку квадратных ячеек. Каждая ячейка помечена таким образом:
  • C если в ячейке корова
  • G если в ячейке трава
  • . если в ячейке нет ни коровы, ни травы
Для того, чтобы две различные коровы стали друзьями, коровы должны встретиться в ячейке с травой, которая горизонтально или вертикально соседствует с каждой из них. Во время этого процесса они съедают траву в этой ячейке, поэтому другая пара коров уже не сможет использовать эту ячейку как место встречи. Любая корова может подружиться более чем с одной другой коровой, но никакая пара коров не может встретиться и стать друзьями более одного раза.

ФД надеется, что много пар коров станут друзьями. Определите максимальное количество пар коров, которые могут стать друзьями.

ФОРМАТ ВВОДА:
Первая строка содержит N и M (2 ≤ N,M ≤ 1000).
Каждая из следующих N строк содержит M символов, описывая пастбище.

ФОРМАТ ВЫВОДА:
Определите максимальное количество пар коров, которые могут стать друзьями.
 
Входные данные Выходные данные
1 4 5
.CGGC
.CGCG
CGCG.
.CC.C
4

Если мы пометим корову в строке i и столбце j координатами (i,j), тогда в этом примере есть коровы в (1,2), (1,5), (2,2), (2,4), (3,1), (3,3), (4,2), (4,3), and (4,5). Один из способов, чтобы 4 коровы стали друзьями таков:

Коровы из (2,2) и (3,3) едят траву в (3,2).
Коровы из (2,2) и (2,4) едят траву в (2,3).
Коровы из (2,4) и (3,3) едят траву в (3,4).
Коровы из (2,4) и (1,5) едят траву в (2,5).
Нани с первых минут невзлюбила Стича и даже боялась оставаться вместе с ним в одном доме. Но спустя время она разглядела в малыше добрую душу и приняла его в свою семью. Вместе со Стичем пришлось приютить и его создателя Джамбо, которому пришлось остаться на Земле. 
Чтобы запомнить имена новых знакомых инопланетян, Джамбо вносит их в компьютер. Имена инопланетянин могут содержать самые различные символы, но всегда удовлетворяют особым правилам. Правила следующие: все имена содержат только латинские буквы (заглавные и строчные), цифры и знак подчёркивания. Имя всегда начинается либо с буквы, либо со знака подчеркивания. Другие символы в именах отсутствуют. 
Напишите для Джамбо программу, которая бы проверяла правильно ли он занес в компьютер имя очередного знакомого.

Входные данные
На вход программы подаётся символьная строка - имя, которое Джамбо занес в компьютер.

Выходные данные
Программа должна вывести ответ 'YES', если строка представляет собой имя, составленное по правилам задачи, и 'NO' в противном случае.  

 
Примеры
Входные данные Выходные данные
1
Abc123
YES
2
Abc[a!
NO

 

✓ 520✗ 1 044400лёгкаяВойти и решать
Во время пандемии 2020 года, в школе Маши, Даши и Миши переоборудовали столовую с учетом требований соблюдения дистанции. Для каждого класса все столы были одноместные и расставлялись в виде сетки, состоящей из \(N\) рядов, пронумерованных от \(1\) до \(N\), и двух столбцов, пронумерованных от \(1\) до \(2\). Расстояние между столами \((R_a, C_a)\) и \((R_b, C_b)\) равно евклидому расстоянию между центрами соответствующих клеток, а именно \(\sqrt {(R_a - R_b)^2 + (C_a - C_b)^2}\)
Каждый ученик класса, приходя в столовую, размещается как можно дальше от других учеников. Точнее говоря, дежурный класса назначает ученику свободное место, расстояние от которого до ближайшего занятого места максимально. Если имеется более одного такого места, то дежурный всегда назначает место с номером в меньшем ряду, а если есть несколько таких мест, он выбирает место с наименьшим столбцом. После того, как дежурный назначил место, учащийся должен сидеть только за этим столом до окончания обеда, после обеда учащийся покидает столовую, сообщая об этом дежурному. Если в столовой никого нет, то входящему учащемуся всегда назначается место в ряду 1 и столбце 1. 
В школе Маши, Даши и Миши все ученики прилежные и всегда занимают те места, которые им были указаны.
Но так как дежурные иногда задерживаются на уроках, они просят Вас написать программу, которая учитывая последовательность событий и тип каждого события, автоматически назначала бы место для учащегося. Изначально столовая пуста.
События нумеруются от \(1\) до \(M\) в том порядке, в котором они происходят. Существует два вида событий: событие типа "E" соответствует учащемуся, купившему обед, и которому нужен стол, а событие типа "L" соответствует учащемуся, который закончил обедать и освободил вышел из-за стола. Для события типа "L" также дается число P - оно указывает, что уходящий ученик - это тот, который купил обед во время события P.
Гарантируется, что в столовой всегда будет хотя бы одно свободное место, когда учащийся купил для себя обед.

Входные данные: Первая строка содержит два целых числа N и M (1 <= N <= 150000, 1 <= M <= 30000), количество рядов в словой и количество событий. Следующие M строк содержат описание событий, K-я из этих строк содержит описание события K - либо символ «E», либо символ «L», за которым следует целое число Pk (1 <= Pk < K). Гарантируется, что событие Pk относится к типу «E», и ни один учащийся не будет пытаться уйти из столовой дважды.
Выходные данные: Для каждого события типа «E» в том порядке, в котором они произошли, выведите строку и номер столбца места, на которое должен сесть учащийся

 

Примеры
Входные данные Выходные данные
1 3 7
E
E
E
L 2
E
L 1
E
1 1
3 2
1 2
3 1
1 1
2 13 9
E
E
E
E
E
E
E
E
E
1 1
13 2
7 1
4 2
10 1
2 2
3 1
5 1
6 2
3 10 9
E
E
E
E
L 3
E
E
L 6
E
1 1
10 2
5 2
7 1
4 2
2 2
4 1
 

 

Внешкольная жизнь Маши, Даши и Миши очень насыщенная. Все вместе дети посещают \(K\) кружков. Дни, когда работает какой-либо кружок, родителям после работы приходится отвозить ребят на тренировки. Если дни занятий не выходные (суббота или воскресенье), то такие дни считаются загруженными.
Все кружки работают через определенное число дней. i-й кружок работает каждый \(b_i\) день, начиная с дня c номером \(a_i\). То есть i-й кружок работает в дни \(a_i\), \(a_i+b_i\)\( a_i+2b_i\) и т.д. 
В календаре дополнительных занятий \(N\) дней, пронумерованных от 1 до \(N\). Первый день всегда понедельник, шестой и седьмой дни - выходные, неделя состоит из семи дней.

Входные данные: программа получает на вход число дней в календаре \(N\) (\(1<=N<=10^6\)) и число кружков \(K\) (\(1<=K<=100\)). Далее идет \( K\) строк, описывающие графики проведения тренировок. \(i\)-я строка содержит числа \(a_i\) и \(b_i\) (\(1<=a_i,b_i<=N\)).

Выходные данные: выведите единственное число: количество загруженных дней у родителей в течение всего календаря занятий.

Примечание: первый кружок работает в дни 2, 5, 8, 11, 14, 17. Второй кружок работает в дни 3, 8, 13, 18. Третий кружок - в дни 9 и 17. Дни номер 6, 7, 13, 14 являются выходными. Таким образом, загруженными будут дни 2, 3, 5, 8, 9, 11, 17, 18. 

 

Примеры
Входные данные Выходные данные
1 19 3
2 3
3 5
9 8
8

 

✓ 47✗ 191900средняяВойти и решать
Даша предлагает Маше сыграть в следующую игру. Даша пишет на листочке одно число, а задача Маши записать другое число, используя только цифры, которые есть в числе Даши. Напишите программу, которая выводит цифры, используемые Машей для записи своего числа, если Маша выполнила условие Даши, в противном случае выведите на экран слово losing

Входные данные: на вход подаются два натуральных числа (сначала число Даши, затем число Маши), не превыщающие 109. Каждое число в отдельной строке
Выходные данные: выведите в порядке возрастания требуемые цифры, или слово losing

 

Примеры
Входные данные Выходные данные
1 5112648
1246
1 2 4 6
2 64141
1246
losing

 

✓ 49✗ 133600лёгкаяВойти и решать
Маша предлагает Мише сыграть в следующую игру. Маша пишет на листочке два числа, а перед Мишей лежат карточки с цифрами от 0 до 9. Задача Миши выбрать себе такие карточки, на которых записаны цифры, которые используются для записи как первого числа, так и второго.

Входные данные: на вход подаются два натуральных числа, не превыщающие 109. Каждое число в отдельной строке
Выходные данные: выведите на экран в порядке возрастания карточки, которые должен взять Миша. Если Миша не может взять ни одной карточки, то выведите -1

 

Примеры
Входные данные Выходные данные
1 514
233
-1
2 1248
3472
2 4

 

✓ 103✗ 133500лёгкаяВойти и решать
Маша предлагает Даше сыграть в следующую игру. Маша пишет на листочке число, а перед Дашей лежат карточки с цифрами от 0 до 9. Задача Даши выбрать себе такие карточки, на которых записаны цифры, которые не используются в записи числа Маши.

Входные данные: на вход подается натуральное число, не превыщающее 109
Выходные данные: выведите на экран в порядке возрастания карточки, которые должна взять Даша. Если в числе Маши используются все цифры от 0 до 9, то выведите -1

 

Примеры
Входные данные Выходные данные
1 2007 1 3 4 5 6 8 9

 

✓ 114✗ 266500лёгкаяВойти и решать
Маша, Даша и Миша получили некоторое количество оценок по информатике. Маша и Даша хотят посмотреть какие из оценок встречались у Миши, но не встречались у них. Напишите программу для решения этой задачи.

Входные данные: в первой строке задается число N (\(0 < N <=100\)) - количество оценок каждого ребенка. 
Далее идет 3 строки по N чисел в каждой - оценки Маши, Даши и Миши соответственно. Оценки у ребят в школе выставляются по 100 бальной шкале.
Выходные данные: выведите в одной строке, разделяя одним пробелом, все оценки, которые встречались у Миши, но не встречались у Маши и Даши. Оценки выводите в порядке возрастания. Если таких оценок нет, вывести -1

 

Примеры
Входные данные Выходные данные
1 5
5 4 6 4 5
5 2 3 6 6
5 5 2 1 2
1

 

✓ 90✗ 292500лёгкаяВойти и решать
Маша, Даша и Миша получили некоторое количество оценок по информатике. Маша и Даша хотят посмотреть какие из оценок встречались у них, но не встречались у Миши. Напишите программу для решения этой задачи.

Входные данные: в первой строке задается число N (\(0 < N <=100\)) - количество оценок каждого ребенка. 
Далее идет 3 строки по N чисел в каждой - оценки Маши, Даши и Миши соответственно. Оценки у ребят в школе выставляются по 100 бальной шкале.
Выходные данные: выведите на экран оценки, которые встречались у Маши и Даши, но не встречались у Миши. Оценки выводите в порядке возрастания. Если таких оценок нет, вывести -1

 

Примеры
Входные данные Выходные данные
1 5
5 4 6 4 5
5 2 3 6 6
5 5 2 1 2
3 4 6

 

✓ 104✗ 291500лёгкаяВойти и решать
Маша, Даша и Миша написали по слову. Маша считает, что для записи всех трех слов использовался один и тот же набор букв. Напишите программу, которая бы определяла верно ли считает Маша.

Формат входных данных 
Даны три слова, по одному слову в строке

Формат выходных данных 
Если все три слова составлены из одного набора букв, то выведите этот набор в лексикографическом порядке, в противном случае выведите -1
Миша переписываясь с друзья в whatsapp, решил определить, каких символов в его последнем сообщении больше - латинских гласных или латинских согласных? При подсчете он учитывает и прописные, и строчные буквы (одни и те же строчные и прописные буквы считаются различными), одинаковые буквы считаются один раз.

Входные данные: строка, содержащая буквы и пробелы. Других символов в ней нет.
Выходные данные: выведите слово vowels, если больше гласных, consonants - если согласных, и знак = в случае равенства

Алфавит (гласные буквы выделены жирным):
Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz

Примеры
Входные данные Выходные данные
1 its sunny today vowels
2 Hello how are you =

 

✓ 109✗ 423600лёгкаяВойти и решать
Маша и Даша пишут друг другу сообщения через whatsapp. Затем они решили определить символы (учитывая регистр), которые есть в сообщении Маши, но нет в сообщении Даши. Напишите программу, которая сделает это за девочек 

Входные данные: в первой строке задается сообщение Маши, во второй - Даши
Выходные данные: выведите ответ на задачу. Символы выводить в алфавитном порядке.

 

Примеры
Входные данные Выходные данные
1 Hallo
Hi
a l o

 

✓ 119✗ 131400лёгкаяВойти и решать
На дне рождения у Мишки присутствовало n детей. Каждый ребенок получил в подарок по m воздушных шариков. Цвет шарика условно задан некоторым натуральным числом. 
Определите, есть ли шарики одинакового цвета у всех детей, если есть выведите номера этих цветов в порядке возрастания, в противном случае выведите -1.

Входные данные
В первой строке задаются числа n (\(0 < n <= 100\)) и m (\(1 <= m <= 50\)). Далее идут n строк по m чисел в каждой - номера цветов воздушных шариков у i-го ребенка. Цвет кодируется натуральным числом не превышающим 20.

Выходные данные
Выведите на экран в порядке возрастания номера совпадающих у всех ребят цветов, если таких нет выведите -1.

 

Примеры
Входные данные Выходные данные
1 5 6
1 4 1 3 5 5
3 5 1 4 4 4
5 2 3 1 1 1
4 2 5 4 1 5
5 1 3 2 3 5
1 5
2 2 2
1 2
3 4
-1

 

✓ 1 393✗ 2 581400лёгкаяВойти и решать
Самый главный друг Дениски - это конечно же Мишка. Но кроме этого у ребят есть и другие друзья. Очень часто все друзья ходят в гости друг к другу. Дениска с Мишкой решили определить, кто из друзей виделся со всеми. Для этого Дениска вел записи посещения гостей у каждого друга. 

Входные данные
В первой строке задается число  N - общее количество друзей (\(0 < N <= 100\)). Далее идут N строк, в каждой из i-й строке записан набор чисел от 0 до N-1 - условные номера друзей, которые побывали у i-го друга. Каждый друг мог приходить к другому другу любое количество раз. В i-й строке отсутствует число i (\(0 <= i < N\)).

Выходные данные
Выведите в одной строке в порядке возрастания условные номера друзей, у которых побывали в гостях все остальные. Если таких нет, то выведите -1.

 

Примеры
Входные данные Выходные данные
1 5
1 2 
0 2 3 2 4 3 0
0 1 3 4 
0 4 2
1 2
1 2
2 3
1
2
0
-1

 

Дениска и Мишка записывают свои наборы чисел. Причем у каждого мальчика все числа различны. Затем ребята определяют на сколько близко сходятся их мысли, то есть сколько чисел присутствуют в обоих наборах, и по сколько различных в каждом наборе. 

Входные данные
В первой строке входного файла записаны числа N и M — количество чисел у Дениски и Мишки соответственно. В следующих N строках заданы числа Дениски. В последних M строках - числа Мишки.

Выходные данные 
Выведите сначала количество, а затем отсортированные по возрастанию числа такие, которые есть в обоих наборах, затем количество и отсортированные по возрастанию остальные числа из набора Дениски, потом количество и отсортированные по возрастанию числа из набора Мишки.
 
Примеры
Входные данные Выходные данные
1 4 3
0
1
10
9
1
3
0
2
0 1
2
9 10
1
3
✓ 849✗ 1 805600лёгкаяВойти и решать
Игры с числами для Дениски с Мишкой стали самыми любимыми. Теперь они играют следующим образом. 
Дениска дает Мишке следующие команды:
1) запомнить a - после этой команды Мишка должен запомнить очередное число a
2) забыть a - после этой команды Мишка забывает о том, что число a было (Дениска всегда называет число a, которое раньше точно было)
Играет продолжается некоторое число шагов, которое заранее обговаривается. После всех шагов Мишка должен в порядке возрастания назвать все уникальные числа, которые он запомнил.

Входные данные
На вход подается число N (\(1 <= N <= 100000\)) - количество шагов в игре. В следующих N строках содержатся  команды в следующем формате:
символ ‘+’ (запомнить число) или ‘-’ (забыть число) и через пробел число a (\(1 <= a <= 1000000000\)).
Гарантируется, что если число a необходимо забыть, то до этого оно уже встречалось с командой '+' и не забывалось. 

Выходные данные
Требуется вывести все уникальные числа (по возрастанию), которые в итоге запомнил Мишка после выполнения всех запросов или -1, если таких чисел в итоге не оказалось.
 
Примеры
Входные данные Выходные данные
1
3
+ 1
+ 2
- 1
2
2
3
+ 1
+ 1
- 1
-1
3
3
+ 1
+ 1
+ 1
1

 
✓ 1 138✗ 2 422500лёгкаяВойти и решать
Дениска решил тренировать память Мишки. Для этого он решил называть некоторые числа. А Мишка для каждого числа должен говорить слово YES, если это число ранее уже называлось Дениской или NO, если не называлось. Помогите Дениске потренировать Мишку, напишите программу, которая бы показывала какой ответ должен произносить Мишка.

Входные данные
Вводится список чисел. Все числа списка находятся на одной строке.

Выходные данные 
Для каждого числа выведите слово YES (в отдельной строке), если это число ранее встречалось в последовательности или NO, если не встречалось.
 
Примеры
Входные данные Выходные данные
1 1 2 3 2 3 4 NO
NO
NO
YES
YES
NO
✓ 1 634✗ 2 010300лёгкаяВойти и решать
Поделиться
Класснуть