Интернет-олимпиады, Сезон 2022-2023, Вторая личная олимпиада + Первый отбор на ИОИП
Statement is not available in English language
A. Отель «Континенталь»
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Отель «Континенталь», в котором случается достаточно много ключевых событий в жизни Джона Уика, имеет долгую историю. И построен он был, несмотря на все ресурсы Правления Кланов и Старейшины, не в один день.

Всего отдель был построен за $$$n$$$ дней. В первый день было построено основание «Континенталя» в виде прямоугольника размером $$$a_1 \times b_1$$$. Затем в $$$i$$$-й день к текущему основанию с краю достраивался еще один блок размером $$$a_i \times b_i$$$ так, чтобы основание оставалось прямоугольником.

Иными словами, текущее основание и прямоугольник размером $$$a_i \times b_i$$$ присоединялись друг к другу одинаковой стороной. Прямоугольник мог быть повернут на $$$90^\circ$$$ и присоединен к любой из сторон текущего основания, если сам имел равную ей сторону.

Джон, чтобы незаметно пробраться в «Континенталь» к Винстону, добыл записи о всех $$$n$$$ днях постройки. Теперь он хочет понять, правдивы ли эти записи, и, если да, какими могут быть размеры текущего «Континенталя».

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

В первой строке ввода дано единственное число $$$n$$$ — количество дней постройки отеля ($$$1 \leqslant n \leqslant 10^5$$$).

В $$$i$$$-й из следующих $$$n$$$ строк через пробел даны два целых числа $$$a_i$$$ и $$$b_i$$$ — размеры прямоугольника, присоединяемого к основанию в $$$i$$$-й день ($$$1 \leqslant a_i, b_i \leqslant 10^{12}$$$). Обратите внимание, что размеры прямоугольников могут не помещаться в $$$32$$$-битный целочисленный тип данных int.

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

В первой строке выведите одно целое число $$$k$$$ — количество возможных вариантов размеров «Континенталя». Если в записях есть ошибка, и отель не мог быть построен из указанных прямоугольников, считайте, что $$$k = 0$$$.

В $$$i$$$-й из следующих $$$k$$$ строк выведите через пробел два числа — размеры отеля в $$$i$$$-м варианте.

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

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

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

ПодзадачаБаллы Дополнительные ограничения Необходимые подзадачи Информация о проверке
117$$$n \leqslant 2$$$полная
213$$$a_i = b_i$$$ для всех $$$i$$$полная
319$$$n \leqslant 3$$$1первая ошибка
422$$$a_i$$$ и $$$b_i$$$ — степени двойки для всех $$$i$$$первая ошибка
529нет1 – 4первая ошибка
Примеры
Входные данные
3
2 2
2 3
2 4
Выходные данные
1
2 9
Входные данные
3
2 2
2 3
3 4
Выходные данные
0
Входные данные
4
2 3
3 2
3 6
5 10
Выходные данные
2
5 16
8 10

Statement is not available in English language
B. Противостояние фракций
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Джон Уик оказался втянут в противостояние между старым Правлением и новой фракцией. Исход противостояния определится тем, к какой фракции примкнет сам Джон, но он пока предпочитает сохранять нейтралитет, поэтому ему стоит тщательно планировать свои перемещения.

Карта городов, между которыми Джону может понадобиться перемещаться, представляет собой неориентированный граф из $$$n$$$ вершин и $$$m$$$ ребер. Граф не обязательно связный, то есть не обязательно между каждой парой городов есть путь. В каждом городе большее влияние имеет ровно одна из двух фракций.

Джон считает распределение влияния фракций по городам достаточно нейтральным, если в любых двух городах, соединенных ребром, главенствуют разные фракции. Он может подтянуть старые связи и использовать свои Маркеры, чтобы изменить баланс сил в некоторых городах, однако он считает неблагоразумным вмешиваться больше, чем требуется. Всего есть $$$k$$$ городов, на которые Джон может оказать влияние: $$$v_1$$$, $$$v_2$$$, ..., $$$v_k$$$.

Помогите Джону определить, в каком минимальном количестве городов ему следует поменять влияние одной фракции на другой, чтобы распределение фракций стало нейтральным.

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

В первой строке входных данных дано два числа $$$n$$$ и $$$m$$$ — количество городов и дорог между ними ($$$1 \leqslant n \leqslant 10^4$$$; $$$1 \leqslant m \leqslant 2 \cdot 10^5$$$).

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

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

В последних $$$m$$$ строках заданы дороги между городами: в $$$i$$$-й из строк через пробел даны два целых числа $$$u_i$$$ и $$$v_i$$$ — города, между которыми проведена $$$i$$$-я дорога ($$$1 \leqslant u_i, v_i \leqslant n$$$; $$$u_i \neq v_i$$$). Гарантируется, что все дороги проведены между разными парами городов.

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

Выведите одно целое число число — минимальное количество городов, в которых требуется изменить главенствующую фракцию, чтобы граф стал нейтральным, либо «-1» (без кавычек), если это невозможно.

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

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

ПодзадачаБаллы Дополнительные ограничения Необходимые подзадачи Информация о проверке
111$$$n \leqslant 20$$$полная
222каждый город имеет ровно одну дорогупервая ошибка
316$$$k = 0$$$первая ошибка
424$$$k \leqslant 1$$$3первая ошибка
527нет1 – 4первая ошибка
Примеры
Входные данные
4 2
1 1 1 2
1 1 1 0
1 2
2 3
Выходные данные
1
Входные данные
4 4
1 1 1 1
0 0 1 1
1 2
2 3
3 4
1 4
Выходные данные
-1
Входные данные
5 5
1 1 1 2 2
1 1 1 1 0
1 2
2 3
3 4
4 1
4 5
Выходные данные
3

Statement is not available in English language
C. Маркер в библиотеке
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

В Нью-Йоркской библиотеке в одной из книг Джон хранит Маркер и еще несколько предметов, которые могут помочь ему выбраться из ситуации. Чтобы найти эту книгу, Джону необходимо вспомнить ее библиотечный номер — строку из маленьких латинских букв длины $$$n$$$.

У Джона записана подсказка $$$s$$$, которая может помочь ему вспомнить номер. Он помнит, что номер можно получить из $$$s$$$ следующим алгоритмом:

  1. выбрать в $$$s$$$ некоторый символ $$$s_i$$$, после чего выписать его на бумагу;
  2. разделить $$$s$$$ по этому символу на две части: $$$s_l = \overline{s_1 s_2 \ldots s_{i - 1}}$$$ и $$$s_r = \overline{s_{i + 1} s_{i + 2} \ldots s_n}$$$;
  3. применить последовательно этот же алгоритм сначала к $$$s_l$$$, а потом к $$$s_r$$$.

Известно, что библиотечный номер книги — это лексикографически минимальная из строк, которые можно получить из $$$s$$$ описанным образом. Помогите Джону его восстановить.

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

В единственной строке ввода дана сама строка $$$s$$$ из маленьких латинских букв — подсказка к библиотечному номеру книги ($$$1 \leqslant |s| \leqslant 2 \cdot 10^5$$$).

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

Выведите искомый библиотечный номер книги.

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

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

ПодзадачаБаллы Дополнительные ограничения Необходимые подзадачи Информация о проверке
112$$$|s| \leqslant 10$$$полная
213$$$s$$$ состоит из букв 'a' и 'b'первая ошибка
321$$$s$$$ состоит из букв 'a', 'b' и 'c'2первая ошибка
427$$$|s| \leqslant 1000$$$1первая ошибка
527нет1 – 4первая ошибка
Примеры
Входные данные
bbaacc
Выходные данные
aabbcc
Входные данные
abacaba
Выходные данные
aaaabcb

Statement is not available in English language
D. Группировки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

За голову Джона Уика опять назначена награда, и лидеры одного очень влиятельного клана решили во что бы то ни стало ее получить. В клане есть $$$n$$$ оперативников, которые могут принять участие в охоте за целью. Поскольку всем известно, что Джон — опасная цель, из множества оперативников было решено выбрать несколько групп размерами от $$$3$$$ до $$$k$$$ включительно.

Все $$$n$$$ человек имеют в клане строгую иерархию в виде подвешенного дерева: самый опытный оперативник имеет номер $$$1$$$, у каждого из остальных есть один непосредственный начальник $$$p_i \lt i$$$. У оперативников есть четкие правила, по которым они формируют группы. А именно, каждый оперативник готов быть в команде либо со своим непосредственным начальником, либо с несколькими своими непосредственными подчиненными, и больше ни с кем. Таким образом, любая команда будет состоять из какого-то оперативника с хотя бы двумя его непосредственными подчиненными.

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

Поскольку ответ на задачу может быть слишком большим, выведите его по модулю $$$10^9 + 7$$$.

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

В первой строке ввода через пробел даны два целых числа $$$n$$$ и $$$k$$$ — количество оперативников и максимальное количество человек в группе ($$$1 \leqslant n \leqslant 2 \cdot 10^5$$$; $$$3 \leqslant k \leqslant 5$$$).

В следующей строке через пробел перечислены целые числа $$$p_2$$$, ..., $$$p_n$$$ — номера непосредственных начальников оперативников со второго по $$$n$$$-го ($$$1 \leqslant p_i \lt i$$$).

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

Выведите одно целое число — количество способов разбить оперативников на группы размерами от $$$3$$$ до $$$k$$$ указанным образом по модулю $$$10^9 + 7$$$.

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

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

ПодзадачаБаллы Дополнительные ограничения Необходимые подзадачи Информация о проверке
17$$$n \leqslant 15$$$; $$$k = 3$$$полная
28$$$n \leqslant 15$$$1первая ошибка
39$$$\mathrm{deg}(v) \leqslant 2$$$ для всех $$$v$$$первая ошибка
412$$$n \leqslant 100$$$; $$$k = 3$$$1первая ошибка
515$$$n \leqslant 1000$$$; $$$k = 3$$$4первая ошибка
618$$$n \leqslant 1000$$$2, 5первая ошибка
731нет1 – 6первая ошибка

Здесь за $$$\mathrm{deg}(v)$$$ обозначено количество непосредственных подчиненных оперативника номер $$$v$$$.

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