Отель «Континенталь», в котором случается достаточно много ключевых событий в жизни Джона Уика, имеет долгую историю. И построен он был, несмотря на все ресурсы Правления Кланов и Старейшины, не в один день.
Всего отдель был построен за $$$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$$$-м варианте.
Варианты можно выводить в любом порядке. На одной строке длину и ширину также можно вывести в любом порядке.
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
| 1 | 17 | $$$n \leqslant 2$$$ | полная | |
| 2 | 13 | $$$a_i = b_i$$$ для всех $$$i$$$ | полная | |
| 3 | 19 | $$$n \leqslant 3$$$ | 1 | первая ошибка |
| 4 | 22 | $$$a_i$$$ и $$$b_i$$$ — степени двойки для всех $$$i$$$ | первая ошибка | |
| 5 | 29 | нет | 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
Джон Уик оказался втянут в противостояние между старым Правлением и новой фракцией. Исход противостояния определится тем, к какой фракции примкнет сам Джон, но он пока предпочитает сохранять нейтралитет, поэтому ему стоит тщательно планировать свои перемещения.
Карта городов, между которыми Джону может понадобиться перемещаться, представляет собой неориентированный граф из $$$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» (без кавычек), если это невозможно.
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
| 1 | 11 | $$$n \leqslant 20$$$ | полная | |
| 2 | 22 | каждый город имеет ровно одну дорогу | первая ошибка | |
| 3 | 16 | $$$k = 0$$$ | первая ошибка | |
| 4 | 24 | $$$k \leqslant 1$$$ | 3 | первая ошибка |
| 5 | 27 | нет | 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
После того, как Джон Уик был объявлен экскомьюникадо, у него оставался всего лишь час, прежде чем за его голову официально будет выставлена награда. За этот час ему было необходимо собрать все, что может помочь ему выжить.
В Нью-Йоркской библиотеке в одной из книг Джон хранит Маркер и еще несколько предметов, которые могут помочь ему выбраться из ситуации. Чтобы найти эту книгу, Джону необходимо вспомнить ее библиотечный номер — строку из маленьких латинских букв длины $$$n$$$.
У Джона записана подсказка $$$s$$$, которая может помочь ему вспомнить номер. Он помнит, что номер можно получить из $$$s$$$ следующим алгоритмом:
Известно, что библиотечный номер книги — это лексикографически минимальная из строк, которые можно получить из $$$s$$$ описанным образом. Помогите Джону его восстановить.
В единственной строке ввода дана сама строка $$$s$$$ из маленьких латинских букв — подсказка к библиотечному номеру книги ($$$1 \leqslant |s| \leqslant 2 \cdot 10^5$$$).
Выведите искомый библиотечный номер книги.
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
| 1 | 12 | $$$|s| \leqslant 10$$$ | полная | |
| 2 | 13 | $$$s$$$ состоит из букв 'a' и 'b' | первая ошибка | |
| 3 | 21 | $$$s$$$ состоит из букв 'a', 'b' и 'c' | 2 | первая ошибка |
| 4 | 27 | $$$|s| \leqslant 1000$$$ | 1 | первая ошибка |
| 5 | 27 | нет | 1 – 4 | первая ошибка |
bbaacc
aabbcc
abacaba
aaaabcb
За голову Джона Уика опять назначена награда, и лидеры одного очень влиятельного клана решили во что бы то ни стало ее получить. В клане есть $$$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$$$.
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
| 1 | 7 | $$$n \leqslant 15$$$; $$$k = 3$$$ | полная | |
| 2 | 8 | $$$n \leqslant 15$$$ | 1 | первая ошибка |
| 3 | 9 | $$$\mathrm{deg}(v) \leqslant 2$$$ для всех $$$v$$$ | первая ошибка | |
| 4 | 12 | $$$n \leqslant 100$$$; $$$k = 3$$$ | 1 | первая ошибка |
| 5 | 15 | $$$n \leqslant 1000$$$; $$$k = 3$$$ | 4 | первая ошибка |
| 6 | 18 | $$$n \leqslant 1000$$$ | 2, 5 | первая ошибка |
| 7 | 31 | нет | 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