Множества

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

Два интернет-магазина продают товары. Маркетолог хочет найти:

1. Товары, которые продаются только в первом магазине

2. Товары, которые продаются только во втором магазине

Формат входных данных

В первой строке — число N (1 ≤ N ≤ 100000) — количество товаров первого магазина.

Во второй строке — N целых чисел — коды товаров первого магазина (1 ≤ код ≤ 1000000).

В третьей строке — число M (1 ≤ M ≤ 100000) — количество товаров второго магазина.

В четвёртой строке — M целых чисел — коды товаров второго магазина.

Формат выходных данных

Первая строка: товары только первого магазина (в порядке возрастания через пробел) или "NONE".

Вторая строка: товары только второго магазина (в порядке возрастания через пробел) или "NONE".

Два программиста, Алекс и Макс, решали задачи на соревновании. Жюри хочет узнать, какие задачи решил ровно один из них (не оба сразу).

Формат входных данных

В первой строке — число N (1 ≤ N ≤ 100000) — количество задач, решённых Алексом.

Во второй строке — N целых чисел — номера задач Алекса (1 ≤ номер ≤ 1000000).

В третьей строке — число M (1 ≤ M ≤ 100000) — количество задач, решённых Максом.

В четвёртой строке — M целых чисел — номера задач Макса.

Формат выходных данных

Номера задач, решённых ровно одним программистом (в порядке возрастания через пробел). Если таких нет — выведите "NONE".

Вика и Ника собирают марки. Они решили объединить свои коллекции для выставки. Нужно вывести все уникальные номера марок, которые есть хотя бы у одной из девочек.

 

Формат входных данных

В первой строке — число N (1 ≤ N ≤ 100000) — количество марок у Вики.

Во второй строке — N целых чисел — номера марок Вики (1 ≤ номер ≤ 1000000).

В третьей строке — число M (1 ≤ M ≤ 100000) — количество марок у Ники.

В четвёртой строке — M целых чисел — номера марок Ники.

Формат выходных данных

Все уникальные номера марок в порядке возрастания через пробел.

Два брата, Коля и Толя, написали списки желаемых подарков на Новый Год. Мама хочет узнать, какие подарки хочет только Коля (но не Толя), чтобы подарить их именно ему.

 

Формат входных данных

В первой строке — число N (1 ≤ N ≤ 100000) — количество подарков в списке Коли.

Во второй строке — N целых чисел — номера подарков Коли (1 ≤ номер ≤ 1000000).

В третьей строке — число M (1 ≤ M ≤ 100000) — количество подарков в списке Толи.

В четвёртой строке — M целых чисел — номера подарков Толи.

Формат выходных данных

Все номера подарков, которые хочет только Коля (в порядке возрастания через пробел). Если таких нет — выведите "NONE".

Два друга, Алиса и Боб, составили списки своих любимых чисел. Найди все числа, которые нравятся ОБОИМ друзьям. Числа в списках Алисы и Боба могут повторяться и не обязательно отсортированы.

Формат входных данных

В первой строке — число N (1 ≤ N ≤ 100000) — размер списка Алисы.

Во второй строке — N целых чисел — любимые числа Алисы (1 ≤ число ≤ 1000000).

В третьей строке — число M (1 ≤ M ≤ 100000) — размер списка Боба.

В четвёртой строке — M целых чисел — любимые числа Боба.

Формат выходных данных

Все общие числа в порядке возрастания через пробел. Если общих чисел нет — выведите "NONE".

Петя записывает ID своих друзей в социальной сети. Некоторые ID повторяются (когда друзья заходят несколько раз). Петя хочет получить список всех уникальных ID в отсортированном порядке от меньшего к большему.

Формат входных данных

В первой строке — число N (1 ≤ N ≤ 100000) — количество записей.

Во второй строке — N целых чисел — ID друзей (1 ≤ ID ≤ 1000000).

Формат выходных данных

Все уникальные ID в порядке возрастания через пробел.

Алексей, возможно, самый умный и при этом самый ленивый человек в мире. Сегодня он участвует в олимпиаде.

На олимпиаде участникам даны \(n\) задач, за правильное решение \(i\)-й задачи, участник получит \(a_i\) баллов, за неправильное решение баллов не дают. Дипломы призера дадут тем участникам, которые наберут хотя бы половину от суммарного числа баллов. Например, если на олимпиаде дано три задачи, стоимости которых в баллах равны \(1\), \(3\) и \(4\), соответственно, для получения диплома призера достаточно набрать четыре балла.

Алексей пришел на олимпиаду с целью получить диплом призера. При этом Алексей очень умен и может правильно решить любую задачу на олимпиаде. Но в то же время Алексей очень ленив и хочет решить как можно меньше задач.

Алексей настолько ленив, что даже задачи, которые он будет решать, выбирает лениво. Он хочет выбрать некоторую задачу с номером \(k\), а затем решать задачи с номерами \(k, k+1, k+2 \ldots\) до тех пор, пока ему не будет хватать баллов на диплом призера. Максимум, на что готов Алексей, это пропустить одну задачу и не решать ее, чтобы решить в итоге еще меньше задач.

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

Формат входных данных
В первой строке дано одно натуральное число \(n\) — количество задач на олимпиаде (\(1 \le n \le 10^5\)).

Во второй строке заданы \(n\) чисел \(a_1, a_2, \dots a_n\) — стоимости каждой задачи в баллах (\(1 \le a_i \le 10^9\)).

Формат выходных данных
Выведите одно число — минимальное количество задач, которые может решить Алексей, придерживаясь своей стратегии, чтобы получить диплом призера.


Примечание

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

Во втором тесте достаточно решить только вторую задачу, набрав три балла.

Во время пандемии 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
 

 

Поделиться
Класснуть