Интернет-олимпиады, Сезон 2023-2024, Первая личная олимпиада
A. Фрирен и гримуары
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Однажды, во время своего путешествия, Фрирен наткнулась на магазин гримуаров, и как можно догадаться, купила $$$n$$$ гримуаров, потратив на это почти все свои сбережения. Придя домой, Фрирен поверхностно изучила каждый из них, и охарактеризовала $$$i$$$-й гримуар двумя параметрами $$$a_i$$$ (сложность) и $$$b_i$$$ (потенциал).

Так как Фрирен никуда не торопится, при изучении для нее интересен не только потенциал полученных знаний, но и удовольствие от разбора сложных гримуаров. Поэтому она решила, что будет изучать гримуары в особом порядке. Если ей скучно, она будет изучать самый сложный гримуар (с максимальным $$$a_i$$$) из всех доступных; а если она почувствует, что ей хочется узнать что-то совершенно новое, она выберет гримуар с самым большим потенциалом $$$b_i$$$.

Если есть несколько гримуаров с максимальным интересующим Фрирен параметром, то она выберет тот из них, у которого максимален второй параметр, а если и вторые параметры равны, то Фрирен возьмет тот из них, который она купила раньше.

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

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

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

Во второй строке через пробел перечислены $$$n$$$ целых чисел $$$a_i$$$ — значения сложности гримуаров в порядке их покупки ($$$1 \le a_i \le 10^9$$$). В третьей строке в том же формате даны целые числа $$$b_i$$$ — значения потенциалов гримуаров ($$$1 \le b_i \le 10^9$$$).

В последней строке через пробел перечислены $$$n$$$ целых чисел $$$p_i$$$ — индикаторы настроения Фрирен перед выбором $$$i$$$-го гримуара. Если $$$p_i = 1$$$, Фрирен будет выбирать гримуар с максимальным потенциалом, иначе $$$p_i = 0$$$ и Фрирен выберет самый сложный из доступных гримуаров.

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

Выведите $$$n$$$ различных целых чисел от $$$1$$$ до $$$n$$$, разделенных пробелами; $$$i$$$-е число должно быть равно номеру гримуара, который выберет Фрирен в $$$i$$$-й раз.

Система оценки

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

ПодзадачаБаллыОграничения Необходимые подзадачи Информация о проверке
110$$$n, a_i, b_i \le 10$$$полная
25все $$$a_i$$$ одинаковыпервая ошибка
310 $$$1 \le a_i, b_i \leq n$$$, $$$a_i \ne a_j$$$ и $$$b_i \ne b_j$$$ для всех $$$i \ne j$$$ первая ошибка
430$$$n \le 1000$$$1первая ошибка
55 для любых $$$i \ne j$$$ пары $$$(a_i, b_i)$$$ и $$$(a_j, b_j)$$$ различны 3первая ошибка
640без дополнительных ограничений1 – 5первая ошибка
Примеры
Входные данные
5
1 2 3 4 5
5 4 3 2 1
1 0 1 0 0
Выходные данные
1 5 2 4 3 
Входные данные
6
3 10 6 2 10 1
3 5 10 7 5 9
0 0 1 1 0 1
Выходные данные
2 5 3 6 1 4 

B. Фрирен и барьер
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Фрирен анализирует барьер, возведенный Зерие над территорией проведения первого теста в экзамене на мага первого класса. Зерие — одна из древнейших и наиболее могущественных магов, поэтому разрушить этот барьер будет непросто. Но и Фрирен тоже имеет огромный тысячелетний опыт за плечами, поэтому сразу поняла, что барьер параметризован $$$n$$$ целыми числами $$$a_i$$$.

Для того, чтобы разрушить барьер, Фрирен необходимо по этим $$$a_i$$$ найти ключевую последовательность этого барьера. Ключевая последовательность состоит ровно из $$$k$$$ целых чисел $$$b_i$$$, где $$$$$$b_i = \mathtt{mex}\left( \left\lfloor\frac{a_1}{i}\right\rfloor, \left\lfloor\frac{a_2}{i}\right\rfloor, \ldots, \left\lfloor\frac{a_n}{i}\right\rfloor \right) \text{.}$$$$$$

Здесь $$$\mathtt{mex}$$$ означает минимальное целое неотрицательное число, которое отсутствует в последовательности, а $$$\left\lfloor\frac{a_j}{i}\right\rfloor$$$ — неполное частное при делении $$$a_j$$$ на $$$i$$$. Например, при $$$i = 3$$$ и $$$a = [1, 2, 5, 6, 13, 23]$$$, после деления на $$$i$$$ мы получим последовательность $$$[0, 0, 1, 2, 4, 7]$$$, и $$$\mathtt{mex}(0, 0, 1, 2, 4, 7) = 3$$$.

Иными словами, требуется для каждого $$$i$$$ от $$$1$$$ до $$$k$$$ найти $$$\mathtt{mex}$$$ последовательности, образованной из $$$a$$$ делением нацело на $$$i$$$. Помогите Фрирен найти ключевую последовательность барьера, чтобы она могла его разрушить и помочь своим сокомандникам.

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

В первой строке ввода через пробел даны два целых числа $$$n$$$ и $$$k$$$ — длина последовательности $$$a$$$ и длина искомой ключевой последовательности ($$$1 \le n, k \le 10^6$$$).

Во второй строке ввода через пробел перечислены $$$n$$$ целых чисел $$$a_i$$$ — элементы последовательности параметров барьера ($$$0 \le a_i \le 10^6$$$).

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

В единственной строке ввода через пробел выведите $$$k$$$ целых чисел — элементы ключевой последовательности барьера.

Система оценки

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

ПодзадачаБаллыОграничения Необходимые подзадачи Информация о проверке
112$$$n, k \le 100$$$полная
213$$$a_i \le 10$$$ для всех $$$i$$$первая ошибка
313$$$n \le 10$$$первая ошибка
412$$$n, k \le 1000$$$1первая ошибка
521$$$n, k \le 10^5$$$1, 4первая ошибка
629без дополнительных ограничений1 – 5первая ошибка
Примеры
Входные данные
6 5
1 5 23 6 13 2
Выходные данные
0 4 3 2 3 
Входные данные
10 10
5 9 8 13 25 7 11 6 45 10
Выходные данные
0 0 0 0 0 3 2 2 3 3 

C. Фрирен и интересные вопросы
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Несмотря на юную внешность, Фрирен прожила больше тысячи лет. Восприятие времени эльфийки отличается от человеческого, и год-другой для нее ничего не стоит. Тем не менее, она хорошо помнит, что в $$$i$$$-й год жизни с ней произошли $$$a_i$$$ хороших событий и $$$b_i$$$ плохих.

Однажды Ферн, ученица Фрирен, стала расспрашивать наставницу о ее прошлом. Она задала $$$q$$$ вопросов, в $$$i$$$-м из которых упомянула два года из жизни Фрирен: $$$x_i$$$-й и $$$y_i$$$-й. Фрирен, хоть и хорошо помнит свою жизнь, не хочет отвечать на скучные вопросы, поэтому некоторые из них останутся без ответа.

Скажем, что два года $$$x$$$ и $$$y$$$ являются

  • $$$a$$$-интересными, если $$$a_x$$$ делится на $$$a_y$$$ или, наоборот, является его делителем;
  • $$$ab$$$-интересными, если $$$a_x = b_y$$$ или $$$a_y = b_x$$$;
  • взаимно интересными, если либо они $$$a$$$-интересные, либо они $$$ab$$$-интересные, либо существует год $$$z$$$, что $$$x$$$ и $$$z$$$ взаимно интересные и $$$y$$$ и $$$z$$$ взаимно интересные.

Иными словами, если есть последовательность лет $$$x_1, \ldots, x_k$$$, что любые $$$x_i$$$ и $$$x_{i+1}$$$ либо $$$a$$$-интересные, либо $$$ab$$$-интересные, Фрирен считает $$$x_1$$$ и $$$x_k$$$ взаимно интересными.

Подскажите Ферн, какие из ее вопросов будут интересными (то есть упоминаемые в них года $$$x_i$$$ и $$$y_i$$$ взаимно интересные для Фрирен), а какие — нет.

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

В первой строке ввода дано одно целое число $$$n$$$ — количество лет, прожитых Фрирен ($$$2 \le n \le 3 \cdot 10^5$$$).

Во второй строке через пробел перечислены $$$n$$$ целых чисел $$$a_i$$$ — количество хороших событий, произошедших с Фрирен в каждый год ее жизни ($$$1 \le a_i \le 3 \cdot 10^5$$$). Во третьей строке в том же формате даны $$$n$$$ целых чисел $$$b_i$$$ — количество плохих событий, произошедших с Фрирен в каждый год ее жизни ($$$0 \le b_i \le 3 \cdot 10^5$$$).

В четвертой строке ввода дано одно целое число $$$q$$$ — количество вопросов, которые хочет задать Ферн ($$$1 \le q \leq 5 \cdot 10^5$$$).

В $$$i$$$-й из следующих $$$q$$$ строк дана пара целых чисел $$$x_i$$$ и $$$y_i$$$ — упомянутые Ферн в $$$i$$$-м вопросе года из жизни Фрирен ($$$1 \le x_i, y_i \le n$$$).

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

Выведите $$$q$$$ строк, в $$$i$$$-й из которых выведите ответ на соответствующий запрос. Выведите «YES» (без кавычек), если $$$i$$$-й вопрос Ферн будет интересным, а иначе выведите «NO».

Система оценки

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

ПодзадачаБаллыОграничения Необходимые подзадачи Информация о проверке
113$$$n, q \le 100$$$полная
214$$$b_i = 0$$$ для всех $$$i$$$первая ошибка
314$$$a_i$$$ — простое для всех $$$i$$$первая ошибка
414$$$n, q \le 1000$$$1первая ошибка
518$$$n \le 5000$$$, $$$q \le 5 \cdot 10^5$$$1, 4первая ошибка
627без дополнительных ограничений1 – 5первая ошибка
Примеры
Входные данные
4
7 5 2 10
2 7 2 11
6
1 2
1 3
1 4
2 3
2 4
3 4
Выходные данные
YES
YES
YES
YES
YES
YES
Входные данные
6
2 3 4 5 6 7
9 9 9 9 9 9
5
1 2
1 4
1 5
4 6
4 5
Выходные данные
YES
NO
YES
NO
NO

D. Фрирен и память о героях
ограничение по времени на тест
5 секунд
ограничение по памяти на тест
1024 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Прошло уже множество десятилетий с того дня, как Химмель, Хайтер, Айзен и Фрирен вместе победили Повелителя Демонов. Людям не суждено жить так же долго, как эльфам, поэтому со сменой поколений даже такие героические подвиги из прошлого постепенно забываются.

Одной из целей нынешнего путешествия Фрирен — посетить места, в которых она побывала с командой героев во время своего прошлого путешествия. Карта материка представляет из себя дерево, то есть между любыми двумя из $$$n$$$ городов существует единственный путь. Путешествие по каждому ребру дерева занимает ровно один год.

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

  • «- $$$t_i$$$ $$$x_i$$$» — в начале года $$$t_i$$$ в городе $$$x_i$$$ кто-то возводит или восстанавливает памятник Химмелю или организует ежегодный праздник в честь победы над Повелителем Демонов. Тогда, начиная с этого года включительно, память в этом городе перестает уменьшаться.
  • «+ $$$t_i$$$ $$$x_i$$$» — в начале года $$$t_i$$$ в городе $$$x_i$$$ разрушается памятник или отменяется празднование. Тогда, начиная с этого года включительно, уровень памяти в этом городе начинает снова ежегодно падать на $$$1$$$.

Уровень памяти не опускается ниже $$$0$$$ и никогда не может увеличиваться. Гарантируется, что события типа '+' могут происходить только если до этого в том же городе случилось событие типа '-', после которого не было других событий типа '+'. Аналогично, событие типа '-' не может следовать после другого события типа '-' в том же городе.

Периодически Фрирен интересуется вопросами вида «если в начале года $$$t'_i$$$ выдвинуться в путь из города $$$x'_i$$$, и никаких изменений типа '+' или '-' в городах больше не будет происходить, какой максимальный уровень памяти о героях, победивших Повелителя Демонов, можно будет встретить?». Помогите ей и ответьте на все интересующие ее вопросы.

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

В первой строке входных данных через пробел даны два целых числа $$$n$$$ и $$$q$$$ — количество городов на континте, а также количество запросов ($$$1 \le n, q \le 10^5$$$).

Во второй строке через пробел даны $$$n$$$ целых чисел $$$s_i$$$ — начальные уровни памяти в городах в начале года номер $$$0$$$ ($$$0 \le s_i \le 10^9$$$).

Следующие $$$n - 1$$$ строк содержат описание ребер дерева: в $$$i$$$-й из них дана пара целых чисел $$$u_i$$$ и $$$v_i$$$ — номера городов, соединенных $$$i$$$-м ребром ($$$1 \le u_i, v_i \le n$$$). Гарантируется, что от любой вершины до любой существует единственный путь.

В следующих $$$q$$$ строках дано описание запросов. Каждый запрос начинается с символа '-', '+' или '?'. В первых двух случаях за символом через пробел следуют два целых числа $$$t_i$$$ и $$$x_i$$$, которые означают «остановить ('-') или возобновить ('+') процесс уменьшения уровня памяти в городе $$$x_i$$$, начиная с года $$$t_i$$$ включительно». Иначе далее через пробел даны два целых числа $$$t'_i$$$ и $$$x'_i$$$, означающие запрос «какой максимальный уровень памяти можно встретить, выйдя из города $$$x'_i$$$ в начале года $$$t'_i$$$?» ($$$0 \le t_i, t'_i \le 10^9$$$; $$$1 \le x_i, x'_i \le n$$$).

Запросы перечислены в хронологическом порядке. Гарантируется, что запросы типов '-' и '+' с одним и тем же городом чередуются, и первым в этой последовательности обязательно будет '-'.

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

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

Система оценки

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

Последняя подзадача состоит из $$$16$$$ тестов, каждый из которых независимо оценивается в $$$1$$$ балл.

ПодзадачаБаллыОграничения Необходимые подзадачи Информация о проверке
111$$$n \le 10, q \le 20, t \le 20$$$полная
217$$$n \le 5000, q \le 2000$$$1первая ошибка
316$$$n \le 10000, q \le 30000$$$1, 2первая ошибка
49 $$$t_i = 0$$$, типы запросов только '?' –первая ошибка
515 типы запросов только '?' 4первая ошибка
616 типы запросов только '-', '?' 4, 5первая ошибка
716 без дополнительных ограничений 1 – 6 полная, потестовая оценка
Примеры
Входные данные
3 9
5 7 4
1 2
1 3
- 0 3
? 0 1
? 0 2
? 0 3
+ 3 3
- 4 1
? 5 1
? 5 2
? 5 3
Выходные данные
6
7
5
1
2
2
Входные данные
5 9
5 7 4 0 0
1 2
1 3
3 4
3 5
- 0 3
? 0 1
? 0 2
? 0 3
+ 4 3
- 5 1
? 5 1
? 5 2
? 5 3
Выходные данные
6
7
5
2
2
3