Тренировочный контест МПГУ 2018-2019
A. Катя и сборы
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Катя собирается поехать в другой город на сборы по программированию и, конечно, самое главное в этом вопросе – это собрать чемодан. Набор одежды Кати состоит из футболки и джинсов. Катя знает, что сборы продлятся $$$k$$$ дней и планирует положить в чемодан $$$n$$$ футболок и $$$m$$$ джинсов. Заметим, что ещё один дополнительный комплект одежды будет надет на Кате во время поездки.

Разумеется, для Кати очень важно не появляться во время сборов дважды в одном и том же наборе одежды. Более формально, ни для какого дня не должно оказаться так, чтобы Катя в этот день была одета в те же джинсы и футболку, в которые она была одета в какой-то из предыдущих дней. При этом Катю устроит, если какие-то наборы одежды совпадут только футболкой или только джинсами.

Удастся ли Кате добиться желаемого?

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

В единственной строке записаны три числа: $$$k$$$, $$$n$$$, $$$m$$$ ($$$1 \leq k \leq 10^9$$$, $$$0 \leq m, n \leq 1000$$$).

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

Если Катя сможет исполнить желаемое – выведите «Yes», иначе выведите «No» (ответ выводится без кавычек).

Примеры
Входные данные
1 0 0
Выходные данные
Yes
Входные данные
2 0 0
Выходные данные
No
Входные данные
5 1 2
Выходные данные
Yes
Примечание

В первом примере, сборы длятся всего один день и Кате нет необходимости брать с собой дополнительную одежду.

Во втором примере, Катя в оба дня окажется в той одежде, в которой осуществит поездку.

Можно показать, что в третьем примере возможно в каждый из пяти дней выбирать новый комплект одежды.

B. Пополнение гардероба
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

После поездки на сборы по программированию, Катя решила обновить свой гардероб и начать с футболок. Все футболки новых коллекций содержат уникальный идентификационный номер модели, так что теперь Катя идёт по магазинам и читает эти номера.

Когда Катя берёт в руки очередную футболку, она действует так: если футболка с таким же номером не была встречена Катей ранее – она покупает текущую футболку, в противном случае Катя переходит к следующей футболке без покупки.

Помогите Кате определить, какие футболки ей стоит купить в соответствии с её правилами.

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

В первой строке записано одно целое число $$$n$$$ – количество футболок, которое собирается просмотреть Катя ($$$1 \leq n \leq 5000$$$).

Во второй строке записаны $$$n$$$ целых чисел $$$a_i$$$ – номера футболок в том порядке, в котором их встречает Катя ($$$1 \leq a_i \leq 10^9$$$).

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

Выведите $$$n$$$ чисел, каждое из которых равно либо $$$0$$$, либо $$$1$$$. При этом, если Катя должна будет купить $$$i$$$-ю футболку, $$$i$$$-e число должно быть равно $$$1$$$, а если не должна - то равняться $$$0$$$.

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

C. Ваня и тетради
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Недавно Ваня накопил $$$k$$$ монет и теперь хочет потратить их на покупку тетрадок в клеточку. Ему известна информация про $$$n$$$ магазинов: а именно, ему известно $$$n$$$ пар чисел ($$$a_i$$$, $$$b_i$$$), где $$$a_i$$$ означает цену тетрадки в клеточку в $$$i$$$-м магазине, а $$$b_i$$$ означает количество тетрадей в клеточку, имеющихся в наличии в этом магазине.

Какое максимальное число тетрадей в клеточку может купить Ваня?

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

В первой строке записаны целые числа $$$k$$$ и $$$n$$$ ($$$1 \leq k \leq 10^{18}$$$, $$$1 \leq n \leq 10^5$$$).

В следующих $$$n$$$ строках записано по два целых числа $$$a_i$$$, $$$b_i$$$ ($$$1 \leq a_i, b_i \leq 10^6$$$).

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

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

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

D. Тыквенная магия
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Маг Чариотис занимается выращиванием тыкв. Размер тыквы определяется целым числом (объёмом в кубических метрах).

У мага есть три заклинания: первое увеличивает размер любой тыквы на $$$p$$$, второе увеличивает размер любой тыквы в $$$k$$$ раз, а третье превращает тыкву размера ровно $$$m$$$ в карету (на тыквы других размеров оно не оказывает никакого влияния).

Изначально у мага есть $$$n$$$ тыкв и он планирует сделать как можно больше карет. Чтобы не колдовать попусту, ему хочется узнать, из каких тыкв возможно получить кареты, пользуясь только заклинаниями.

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

В первой строке записаны четыре целых числа: $$$n$$$, $$$p$$$, $$$k$$$, $$$m$$$ ($$$1 \leq n \leq 10^5$$$, $$$1 \leq p \leq 10^7$$$, $$$2 \leq k \leq 10^7$$$, $$$1 \leq m \leq 10^7$$$).

Во второй строке записаны $$$n$$$ целых чисел $$$a_i$$$ – начальные размеры тыкв, имеющихся у мага ($$$1 \leq a_i \leq 10^7$$$).

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

Выведите $$$n$$$ чисел, каждое из которых равно либо $$$0$$$, либо $$$1$$$. При этом, если из $$$i$$$-й тыквы можно получить карету, $$$i$$$-e число должно быть равно $$$1$$$, а если нельзя – то равняться $$$0$$$.

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

E. Ваня и параллельные миры
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В надежде посчитать, сколько тетрадей в клеточку он сможет купить, Ваня создал портал в параллельные миры. К сожалению, от этого его дела пошли только хуже: теперь, вместо того, чтобы определить максимальное число тетрадей, которые можно купить, для одного мира, ему требуется решить эту задачу для $$$m$$$ миров. К счастью, отличие всех миров заключается только в том, сколько денег есть у Вани, тогда как цены в магазинах и количество доступных для покупки тетрадей во всех мирах одинаковы.

Обратите внимание, что ограничения на $$$a_i$$$ и $$$b_i$$$ отличаются от ограничений в задаче $$$C$$$!

Помогите Ване справиться с новыми трудностями!

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

В первой строке записаны два целых числа $$$n$$$ и $$$m$$$ ($$$1 \leq n, m \leq 10^5$$$) - количество магазинов и количество миров соответственно.

Во второй строке записано $$$m$$$ чисел $$$k_i$$$, где $$$k_i$$$ означает число монет Вани в $$$i$$$-м мире ($$$1 \leq k_i \leq 10^{18}$$$).

В следующих $$$n$$$ строках записано по два целых числа $$$a_i$$$, $$$b_i$$$ ($$$1 \leq a_i \leq 10^9$$$, $$$1 \leq b_i \leq 4*10^4$$$) – цена тетради в клеточку в $$$i$$$-м магазине и количество имеющихся в нём в наличии тетрадей соответственно.

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

Выведите $$$m$$$ чисел, где $$$i$$$-е число означает максимальное число тетрадей, которое может купить Ваня в $$$i$$$-м мире.

Пример
Входные данные
2 3
10 30 20
8 2
5 2
Выходные данные
2 4 3 

F. Айландлэнд
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

На данный момент, Айландлэнд состоит из $$$n$$$ островов, пронумерованных числами от $$$1$$$ до $$$n$$$, на каждом из которых живут жители. Никакие два острова не связаны между собой мостами, поэтому жителям приходится добираться от одного острова до другого вплавь.

Иногда на каком-то из островов происходит наводнение, и тогда все жители этого острова переселяются жить на какой-то другой остров. При этом сам остров остаётся на месте и через него можно путешествовать или переселиться на него в будущем.

Король решил начать строить мосты между островами, но строительство мостов - дело достаточно непредсказуемое. Король получает донесения двух видов:

1) В донесении первого вида сообщается, что между островами $$$u_i$$$ и $$$v_i$$$ удалось построить мост. Движение по мосту возможно в обоих направлениях.

2) В донесении второго вида сообщается, что на острове $$$u_i$$$ произошло наводнение и все его жители (если они были) переселились на остров $$$v_i$$$.

Таким образом, каждое донесение задаётся тремя параметрами: своим типом и упорядоченной парой островов.

Королю необходимо планировать будущие расходы, поэтому после каждого донесения ему интересно знать, какое минимальное количество мостов необходимо дополнительно построить, чтобы из любого заселённого (на текущий момент) острова можно было по суше добраться до любого другого заселённого острова.

Обратите внимание, что в задаче требуется ввести много данных!

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

В первой строке записаны два целых числа $$$n$$$ и $$$q$$$ ($$$2 \leq n \leq 3*10^5$$$, $$$1 \leq q \leq 3*10^5$$$) - количество островов и количество донесений соответственно.

Следующие $$$q$$$ строк содержат по три целых числа $$$t_i$$$, $$$u_i$$$, $$$v_i$$$ - информацию об $$$i$$$-м донесении ($$$1 \leq t_i \leq 2$$$, $$$1 \leq u_i, v_i \leq n $$$).

При этом $$$t_i$$$ задаёт тип донесения ($$$t_i=1$$$ означает, что донесение о новом мосте, а $$$t_i=2$$$ означает, что донесение о наводнении), а $$$u_i$$$ и $$$v_i$$$ означают номера островов в тех же обозначениях, что и в условии задачи.

Гарантируется, что $$$u_i \neq v_i$$$ для любого $$$i$$$.

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

Выведите $$$q$$$ чисел, где $$$i$$$-е число означает минимальное количество мостов, которое необходимо дополнительно построить, чтобы из любого заселённого острова можно было добраться по суше до любого другого заселённого острова, на момент после $$$i$$$-го донесения.

Примеры
Входные данные
5 5
1 1 2
1 2 3
1 1 3
1 4 5
1 1 4
Выходные данные
3 2 2 1 0 
Входные данные
5 6
2 1 2
2 2 1
2 1 3
2 5 4
2 4 3
2 3 1
Выходные данные
3 3 2 1 0 0 
Входные данные
9 11
1 1 2
1 3 4
1 5 6
2 6 4
2 5 3
1 7 8
1 1 8
1 5 9
2 9 5
2 1 2
2 1 3
Выходные данные
7 6 5 5 4 3 2 2 2 2 2 
Примечание

Заметим, что между двумя островами может быть построен более, чем один мост.