ICPC 2019-2020 NERC (NEERC), квалификационный этап Чемпионата Юга и Поволжья России
A. Желтые карточки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В финале чемпионата Берляндии по футболу было показано $$$n$$$ желтых карточек. Известно, что в начале матча в первой команде было $$$a_1$$$ игроков, а во второй команде было $$$a_2$$$ игроков.

Если игрок первой команды получал $$$k_1$$$ желтых карточек, то он немедленно удалялся с поля до конца игры. Если игрок второй команды получал $$$k_2$$$ желтых карточек, то он немедленно удалялся с поля до конца игры. После удаления никакой игрок не мог получить желтую карточку. Каждая из $$$n$$$ желтых карточек была показана ровно одному игроку. Игра продолжалась даже в том случае, если все игроки одной или даже обеих команд были удалены с поля.

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

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

В первой строке следует целое число $$$a_1$$$ $$$(1 \le a_1 \le 1\,000)$$$ — количество игроков в первой команде.

Во второй строке следует целое число $$$a_2$$$ $$$(1 \le a_2 \le 1\,000)$$$ — количество игроков во второй команде.

В третьей строке следует целое число $$$k_1$$$ $$$(1 \le k_1 \le 1\,000)$$$ — количество желтых карточек, после получения которых игрок первой команды удалялся с поля.

В четвертой строке следует целое число $$$k_2$$$ $$$(1 \le k_2 \le 1\,000)$$$ — количество желтых карточек, после получения которых игрок второй команды удалялся с поля.

В пятой строке следует целое число $$$n$$$ $$$(1 \le n \le a_1 \cdot k_1 + a_2 \cdot k_2)$$$ — количество желтых карточек, которые были показаны во время матча.

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

Выведите два целых числа — минимальное и максимальное количество игроков, которые могли быть удалены во время финального матча.

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

В первом примере матч мог пройти таким образом, что ни один игрок не был удален, таким образом минимальное количество удаленных игроков равно $$$0$$$. Максимальное количество игроков, которые могли быть удалены, равно $$$4$$$ — три игрока из второй команды и один из первой.

Во втором примере было показано максимально возможное количество желтых карточек $$$(3 \cdot 6 + 1 \cdot 7 = 25)$$$, поэтому при любом ходе игры были удалены все игроки обеих команд.

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

В данной задаче вам задано дерево, состоящее из $$$n$$$ вершин. Дерево — это связный граф, не содержащий циклов. Вершины дерева нумеруются от $$$1$$$ до $$$n$$$.

В заданном дереве есть $$$k$$$ покрашенных вершин с номерами $$$a_1, a_2, \dots, a_k$$$. Выберем произвольную непокрашенную вершину $$$x$$$ и подвесим дерево за эту вершину, то есть будем считать, что вершина $$$x$$$ является корнем дерева. Рассмотрим все поддеревья, корнями которых являются вершины, соединенные ребром с вершиной $$$x$$$. Если в каждом из таких поддеревьев есть хотя бы одна покрашенная вершина, то вершина $$$x$$$ называется интересной.

Перед вами стоит задача определить все интересные вершины заданного дерева и вывести их в возрастающем порядке.

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

В первой строке следуют два целых числа $$$n$$$ и $$$k$$$ $$$(2 \le n \le 2 \cdot 10^{5}, 1 \le k \lt n)$$$ — общее количество вершин в дереве и количество покрашенных вершин в дереве.

Во второй строке следует последовательность различных целых чисел $$$a_1, a_2, \dots, a_k$$$ $$$(1 \le a_i \le n)$$$ — номера покрашенных вершин.

В следующих $$$n - 1$$$ строках следуют по два целых числа $$$u_j$$$ и $$$v_j$$$ $$$(1 \le u_j, v_j \le n, u_j \neq v_j)$$$ — номера вершин, которые соединены ребром. Гарантируется, что заданные ребра образуют дерево.

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

В первую строку выведите целое число $$$p$$$ — количество интересных вершин в дереве.

Во вторую строку выведите $$$p$$$ различных целых чисел — номера интересных вершин в дереве. Каждая интересная вершина должна быть выведена ровно один раз. Номера интересных вершин должны быть выведены в возрастающем порядке.

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

В первом примере есть три непокрашенных вершины, из которых только вершина с номером $$$2$$$ не является интересной, так как есть три вершины, с которыми она соединена ребром, и только в одном поддереве, корнем которого является соседняя вершина, есть покрашенная вершина.

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

Монокарп выложил на стол слева направо $$$n$$$ шариков, причем цвет $$$i$$$-го слева шарика равен $$$a_i$$$. Он любит порядок, поэтому захотел, чтобы все шарики одного цвета образовывали непрерывные отрезки, причем для каждого цвета этот отрезок был ровно один.

Иными словами, Монокарп хочет расположить шарики так, что для каждого цвета $$$j$$$, если самый левый шарик цвета $$$j$$$ находится в позиции $$$l$$$, а самый правый — в позиции $$$r$$$, то все шарики между позициями $$$l$$$ и $$$r$$$ должны иметь цвет $$$j$$$. Такое расположение шариков Монокарп называет упорядоченным.

Для упорядочивания шариков Монокарп может выполнять следующую операцию: выбрать пару соседних шариков и поменять их местами.

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

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

В первой строке следует целое число $$$n$$$ $$$(2 \le n \le 4 \cdot 10^5)$$$ — количество шариков на столе.

Во второй строке следует последовательность $$$a_1, a_2, \dots, a_n$$$ $$$(1 \le a_i \le 20)$$$, где $$$a_i$$$ равно цвету $$$i$$$-го шарика.

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

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

Примеры
Входные данные
7
3 4 2 3 4 2 2
Выходные данные
3
Входные данные
5
20 1 14 10 2
Выходные данные
0
Входные данные
13
5 5 4 4 3 5 7 6 5 4 4 6 5
Выходные данные
21
Примечание

В первом примере Монокарпу достаточно сделать три обмена. Сначала он может поменять местами третий и четвертый шарики, после этого последовательность шариков станет равна $$$[3, 4, 3, 2, 4, 2, 2]$$$. Затем Монокарп может поменять местами второй и третий шарики, после этого последовательность шариков станет равна $$$[3, 3, 4, 2, 4, 2, 2]$$$. После этого Монокарпу остается поменять местами четвертый и пятый шарики, после этого последовательность шариков станет равна $$$[3, 3, 4, 4, 2, 2, 2]$$$.

Во втором примере ничего менять не нужно, так как все шарики уже лежат в удовлетворяющем Монокарпа порядке.

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

Монокарп и Бикарп живут в Берляндии, где все автобусные билеты состоят из $$$n$$$ цифр, при этом $$$n$$$ — четное число. Гуляя вечером, они нашли билет, некоторые цифры на котором были стерты. Количество позиций, в которых цифры стерты, четно.

Монокарп и Бикарп решили сыграть в игру, используя найденный билет. Монокарп очень не любит счастливые билеты, в то время как Бикарп коллекционирует счастливые билеты. Билет считается счастливым, если сумма первых $$$\frac{n}{2}$$$ цифр билета равна сумме последних $$$\frac{n}{2}$$$ цифр билета.

Монокарп и Бикарп будут ходить по очереди, первый ход сделает Монокарп. На каждом своем ходу игроки будут записывать на место какой-то стертой цифры произвольную цифру от $$$0$$$ до $$$9$$$. Игра заканчивается, когда в билете не останется позиций со стертыми цифрами.

Если в конце игры билет счастливый, то в игре выиграет Бикарп. В противном случае, в игре выиграет Монокарп. Перед вами стоит задача определить победителя игры, если оба игрока будут играть оптимально.

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

В первой строке следует целое четное число $$$n$$$ $$$(2 \le n \le 2 \cdot 10^{5})$$$ — количество цифр в билете.

Во второй строке следует строка, состоящая из $$$n$$$ цифр и знаков «?» — билет, найденный Монокарпом и Бикарпом. Если в позиции $$$i$$$ стоит знак «?», то цифра, стоящая в позиции $$$i$$$ в билете, была стерта. Обратите внимание, что номер билета может содержать лидирующие нули. Количество символов «?» четно.

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

Если в игре победит Монокарп, выведите «Monocarp» (без кавычек). В противном случае, выведите «Bicarp» (без кавычек).

Примеры
Входные данные
4
0523
Выходные данные
Bicarp
Входные данные
2
??
Выходные данные
Bicarp
Входные данные
8
?054??0?
Выходные данные
Bicarp
Входные данные
6
???00?
Выходные данные
Monocarp
Примечание

В первом примере нет ни одной стертой цифры в билете, поэтому игроки не смогут сделать ни одного хода. Так как билет счастливый, то выиграет Бикарп.

Во втором примере выиграет Бикарп, для этого ему нужно поставить на место стертой цифры ту же цифру, которую поставит Монокарп на своем ходу.

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

Забор состоит из $$$n$$$ досок, расположенных в ряд слева направо. У Монокарпа есть $$$m$$$ типов красок, причем количество досок, на которые хватит краски типа $$$i$$$, равно $$$a_i$$$. Монокарп купил столько красок, что их в точности хватает для покраски всех $$$n$$$ досок, из которых состоит забор. Иными словами, сумма всех $$$a_i$$$ равна $$$n$$$. Каждая доска должна быть покрашена ровно в один цвет.

Монокарп должен покрасить все доски забора таким образом, чтобы максимальная длина отрезка подряд идущих досок, покрашенных в один цвет, не превышала $$$k$$$.

Найдите подходящий способ раскраски забора, либо сообщите, что такого способа не существует.

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

В первой строке следуют три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ $$$(1 \le n \le 2 \cdot 10^{5}, 1 \le m, k \le n)$$$ — количество досок в заборе, количество типов красок и максимально допустимая длина отрезка подряд идущих досок забора, которые могут быть покрашены в один цвет.

Во второй строке следует последовательность $$$a_1, a_2, \dots, a_m$$$ $$$(1 \le a_i \le n)$$$, где $$$a_i$$$ равно количеству досок забора, на которые хватит краски типа $$$i$$$. Гарантируется, что сумма всех $$$a_i$$$ равна $$$n$$$.

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

Если невозможно раскрасить забор так, чтобы максимальная длина отрезка подряд идущих досок, покрашенных в один цвет, не превышала $$$k$$$, выведите $$$-1$$$.

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

Примеры
Входные данные
5 2 1
2 3
Выходные данные
2 1 2 1 2 
Входные данные
8 2 3
1 7
Выходные данные
-1
Входные данные
10 3 2
5 2 3
Выходные данные
1 1 3 1 1 2 3 1 2 3 
Примечание

В первом примере первую, третью и пятую доски забора нужно покрасить краской типа $$$2$$$, а вторую и четвертую доски забора нужно покрасить краской типа $$$1$$$.

Во втором примере невозможно раскрасить доски забора так, чтобы раскраска удовлетворяла всем условиям, поэтому ответ $$$-1$$$.

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

В данной задаче вам задана последовательность $$$a_1, a_2, \dots, a_n$$$, состоящая из $$$n$$$ целых чисел.

Перед вами стоит задача найти три числа:

  1. количество таких пар индексов $$$(l, r)$$$ $$$(l \le r)$$$, что произведение $$$a_l \cdot a_{l + 1} \dots a_{r - 1} \cdot a_r$$$ строго отрицательно;
  2. количество таких пар индексов $$$(l, r)$$$ $$$(l \le r)$$$, что произведение $$$a_l \cdot a_{l + 1} \dots a_{r - 1} \cdot a_r$$$ равно нулю;
  3. количество таких пар индексов $$$(l, r)$$$ $$$(l \le r)$$$, что произведение $$$a_l \cdot a_{l + 1} \dots a_{r - 1} \cdot a_r$$$ строго положительно.
Входные данные

В первой строке следует целое число $$$n$$$ $$$(1 \le n \le 2 \cdot 10^{5})$$$ — количество элементов в последовательности.

Во второй строке следует $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ $$$(-10^{9} \le a_i \le 10^{9})$$$ — элементы последовательности.

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

Выведите три целых числа — количество отрезков с строго отрицательным произведением, количество отрезков с нулевым произведением и количество отрезков с строго положительным произведением.

Примеры
Входные данные
5
5 -3 3 -1 0
Выходные данные
6 5 4
Входные данные
10
4 0 -4 3 1 2 -4 3 0 3
Выходные данные
12 32 11
Входные данные
5
-1 -2 -3 -4 -5
Выходные данные
9 0 6
Примечание

В первом примере шесть отрезков с отрицательным произведением: $$$(1, 2)$$$, $$$(1, 3)$$$, $$$(2, 2)$$$, $$$(2, 3)$$$, $$$(3, 4)$$$, $$$(4, 4)$$$, пять отрезков с нулевым произведением: $$$(1, 5)$$$, $$$(2, 5)$$$, $$$(3, 5)$$$, $$$(4, 5)$$$, $$$(5, 5)$$$, а также четыре отрезка с положительным произведением: $$$(1, 1)$$$, $$$(1, 4)$$$, $$$(2, 4)$$$, $$$(3, 3)$$$.

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

У Монокарпа есть две строки $$$s$$$ и $$$t$$$ одинаковой длины, состоящие из латинских букв «a» и «b».

Монокарп хочет сделать строки $$$s$$$ и $$$t$$$ одинаковыми. Для этого он может выполнять следующие операции: выбрать в строке $$$s$$$ позицию $$$pos_1$$$, выбрать в строке $$$t$$$ позицию $$$pos_2$$$ и поменять местами буквы $$$s_{pos_1}$$$ и $$$t_{pos_2}$$$.

Перед вами стоит задача определить минимальное количество операций, которые должен сделать Монокарп, чтобы сделать строки $$$s$$$ и $$$t$$$ одинаковыми, а также вывести сами операции. Если невозможно сделать строки одинаковыми, сообщите об этом.

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

В первой строке следует целое число $$$n$$$ $$$(1 \le n \le 2 \cdot 10^{5})$$$ — длина строк $$$s$$$ и $$$t$$$.

Во второй строке следует строка $$$s$$$ длины $$$n$$$, состоящая из латинских букв «a» и «b».

В третьей строке следует строка $$$t$$$ длины $$$n$$$, состоящая из латинских букв «a» и «b».

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

Если невозможно сделать строки одинаковыми, выведите $$$-1$$$.

В противном случае, в первую строку выведите целое число $$$k$$$ — минимальное количество операций, которые нужно сделать, чтобы сделать строки одинаковыми. В каждой из следующих $$$k$$$ строк выведите по два целых числа — позицию в строке $$$s$$$ и позицию в строке $$$t$$$, которые нужно использовать для обмена букв во время очередной операции.

Примеры
Входные данные
4
abab
aabb
Выходные данные
2
3 3
3 2
Входные данные
1
a
b
Выходные данные
-1
Входные данные
8
babbaabb
abababaa
Выходные данные
3
2 6
1 3
7 8
Примечание

В первом примере достаточно двух операций обмена. Например, можно сначала поменять местами третью букву в строке $$$s$$$ с третьей буквой в строке $$$t$$$. После этого $$$s = $$$ «abbb», $$$t = $$$ «aaab». Затем нужно поменять третью букву в строке $$$s$$$ со второй буквой в строке $$$t$$$. После этого обе строки $$$s$$$ и $$$t$$$ будут равны «abab».

Во втором примере невозможно сделать строки одинаковыми.

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

В мэрию Бергорода уже несколько месяцев поступали жалобы на недостаточное освещение Берляндского проспекта — главной улицы города. Недавно мэр смог принять меры по устранению проблемы, и теперь на Берляндском проспекте установлены $$$n$$$ фонарей.

Берляндский проспект можно представить как отрезок координатной прямой с концами в точках $$$0$$$ и $$$10^{18}$$$. В некоторых точках отрезка расположены фонари, $$$i$$$-й фонарь расположен в точке $$$x_i$$$.

Скоро в Бергороде состоится большой студенческий фестиваль, на который съедутся студенты со всех городов Берляндии. Мэр хочет поразить их красотой Берляндского проспекта в ночное время. Для этого в уличное освещение на одну ночь будут внесены изменения следующего характера: будет включена только часть фонарей, а остальные будут отключены, причем включенные фонари будут выбраны таким образом, чтобы Берляндский проспект выглядел красиво.

Конечно же, у всех людей разное представление о красоте. Мэр Бергорода, например, считает, что проспект будет выглядеть красиво, если выполнится следующее условие. Пусть $$$i_1$$$, $$$i_2$$$, ..., $$$i_k$$$ — номера включенных фонарей в порядке возрастания их координат, тогда $$$x_{i_2} - x_{i_1} = x_{i_3} - x_{i_2} = \dots = x_{i_k} - x_{i_{k - 1}}$$$ (то есть, каждая пара соседних включенных фонарей расположена на одинаковом расстоянии). Если будет включено менее $$$3$$$ фонарей, то проспект будет выглядеть красиво вне зависимости от того, где именно будут располагаться эти фонари.

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

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

В первой строке записано одно число $$$n$$$ ($$$3 \le n \le 3\,000$$$) — количество фонарей, установленных на Берляндском проспекте.

Во второй строке записаны $$$n$$$ целых чисел $$$x_1$$$, $$$x_2$$$, ..., $$$x_n$$$ ($$$0 \le x_1 \lt x_2 \lt \dots \lt x_n \le 10^{18}$$$) — расположение фонарей на Берляндском проспекте.

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

Выведите одно целое число — максимально возможное количество фонарей, которые можно зажечь на Берляндском проспекте так, чтобы он выглядел красиво.

Примеры
Входные данные
3
1 2 3
Выходные данные
3
Входные данные
5
1 2 4 6 7
Выходные данные
3
Входные данные
10
5 10 15 20 35 60 80 85 110 120
Выходные данные
5
Примечание

В первом примере можно зажечь все фонари.

Во втором примере можно зажечь три фонаря с координатами $$$1$$$, $$$4$$$, $$$7$$$.

В третьем примере можно зажечь пять фонарей с координатами $$$10$$$, $$$35$$$, $$$60$$$, $$$85$$$, $$$110$$$.

I. Радиостанции
ограничение по времени на тест
7 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

Конечно же, мэр Бергорода вплотную занялся рассмотрением этих жалоб. Недавно в Бергороде была установлена новая радиовышка, способная распространять сигнал силы от $$$1$$$ до $$$M$$$ (обозначим силу сигнала радиовышки за $$$f$$$). Мэр принял решение выбрать несколько радиостанций и заключить с ними договор, чтобы жители города могли принимать их сигнал. Для заключения договора с $$$i$$$-й радиостанцией необходимо, чтобы соблюдались следующие условия:

  • мощность сигнала $$$f$$$ должна быть не менее $$$l_i$$$, иначе в некоторых районах города будет невозможно принимать сигнал $$$i$$$-й радиостанции;
  • мощность сигнала $$$f$$$ должна быть не более $$$r_i$$$, иначе сигнал смогут принять жители других населенных пунктов, не заключившие договор с $$$i$$$-й радиостанцией.

Всего этого уже было достаточно, чтобы мэру было трудно выбрать мощность сигнала и радиостанции так, что все жалобы будут удовлетворены. Но позже выяснилось, что некоторые радиостанции могут использовать одни и те же частоты для распространения сигнала: всего существует $$$m$$$ пар радиостанций ($$$u_i$$$, $$$v_i$$$), использующих одни и те же частоты, и для каждой такой пары нельзя одновременно заключить договор с обеими радиостанциями. Если радиостанции $$$x$$$ и $$$y$$$ используют одни и те же частоты, и радиостанции $$$y$$$ и $$$z$$$ используют одни и те же частоты, это не значит, что радиостанции $$$x$$$ и $$$z$$$ используют одни и те же частоты.

Мэру очень трудно проанализировать всю эту информацию и понять, с какими радиостанциями нужно заключать договоры. Помогите ему выбрать такую мощность сигнала $$$f$$$ и такое множество радиостанций, с которыми город заключит договоры, чтобы:

  • все жалобы жителей были удовлетворены (формально, для каждого $$$i \in [1, n]$$$ либо с радиостанцией $$$x_i$$$, либо с радиостанцией $$$y_i$$$ заключен договор);
  • никакие выбранные радиостанции не конфликтовали за частоты (формально, для каждого $$$i \in [1, m]$$$ либо с радиостанцией $$$u_i$$$, либо с радиостанцией $$$v_i$$$ не заключен договор);
  • для каждой выбранной радиостанции соблюдаются условия на мощность сигнала (формально, для каждой выбранной радиостанции $$$i$$$ соблюдается $$$l_i \le f \le r_i$$$).
Входные данные

В первой строке заданы $$$4$$$ целых числа $$$n$$$, $$$p$$$, $$$M$$$ и $$$m$$$ ($$$2 \le n, p, M, m \le 4 \cdot 10^5$$$) — количество поступивших в мэрию жалоб, количество различных радиостанций, максимальная мощность сигнала и количество пар конфликтующих радиостанций, соответственно.

Далее следуют $$$n$$$ строк, описывающих поступившие в мэрию жалобы. В каждой строке заданы два целых числа $$$x_i$$$ и $$$y_i$$$ ($$$1 \le x_i \lt y_i \le p$$$) — номера радиостанций в $$$i$$$-й жалобе). Все жалобы различны.

Далее следуют $$$p$$$ строк, описывающих радиостанции. В каждой строке заданы два целых числа $$$l_i$$$ и $$$r_i$$$ ($$$1 \le l_i \le r_i \le M$$$) — ограничения на мощность сигнала при заключении договора с $$$i$$$-й радиостанцией.

Далее следуют $$$m$$$ строк, описывающих пары конфликтующих радиостанций. В каждой строке заданы два целых числа $$$u_i$$$ и $$$v_i$$$ ($$$1 \le u_i \lt v_i \le p$$$) — две конфликтующие радиостанции. Все пары конфликтующих радиостанций различны.

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

Если не существует такого значения мощности сигнала и такого множества радиостанций, при которых выполнялись бы все ранее описанные условия, выведите $$$-1$$$.

Иначе в первой строке выведите два целых числа $$$k$$$ и $$$f$$$ — количество радиостанций в выбранном множестве и мощность сигнала соответственно. Во второй строке выведите $$$k$$$ различных целых чисел от $$$1$$$ до $$$p$$$ — номера радиостанций, с которыми следует заключить договор (в любом порядке). Если возможных ответов несколько, выведите любой из них; не обязательно минизировать/максимизировать ни количество выбранных радиостанций, ни мощность сигнала.

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

J. Монокарп и футболки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Монокарп хочет принять участие в $$$n$$$ разных соревнованиях по программированию, в каждом из которых он собирается выиграть футболку. Конечно же, ему не нужно целых $$$n$$$ футболок — он хочет раздать их друзьям. Всего у Монокарпа есть список из $$$n$$$ чисел $$$a_1$$$, $$$a_2$$$, ..., $$$a_n$$$ — размеры футболок, заказанных друзьями. Так совпало, что все $$$a_i$$$ различны.

Чтобы получить все $$$n$$$ футболок для всех $$$n$$$ друзей, Монокарп на каждом соревновании указывает отдельный размер футболки, который он хочет получить — при регистрации на соревнование $$$i$$$ он указывает, что хочет получить футболку размера $$$a_i$$$.

Монокарп уверен в своих навыках программирования, поэтому на каждом соревновании он обязательно выиграет футболку. Однако, к сожалению, он может получить футболку не того размера, который он указал: если он указал размер $$$x$$$, то с вероятностью $$$p$$$ он получит футболку размера $$$x - 1$$$, с вероятностью $$$q$$$ он получит футболку размера $$$x + 1$$$, и с вероятностью $$$1 - p - q$$$ он получит футболку размера $$$x$$$.

После получения всех футболок Монокарп их раздает: для каждого $$$a_i$$$, если он получил хотя бы одну футболку размера $$$a_i$$$, он отдает ровно одну из них другу, заказавшему футболку этого размера. Теперь Монокарп интересуется, скольким друзьям он сможет раздать футболки. Помогите ему посчитать математическое ожидание количества розданных футболок.

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

В первой строке входных данных заданы три целых числа $$$n$$$, $$$P$$$ и $$$Q$$$ ($$$1 \le n \le 2 \cdot 10^5$$$, $$$0 \le P \le 10^6$$$, $$$0 \le Q \le 10^6$$$, $$$P + Q \le 10^6$$$) — количество соревнований и числа, задающие вероятность получить футболку неправильного размера. $$$p$$$ и $$$q$$$ из условия можно посчитать следующим образом: $$$p = \frac{P}{10^6}$$$, $$$q = \frac{Q}{10^6}$$$.

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

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

Математическое ожидание количества розданных футболок можно выразить в виде несократимой дроби $$$\frac{X}{Y}$$$, где $$$Y$$$ не кратно $$$998244353$$$. Выведите $$$(X \cdot Y^{-1})$$$ $$$mod$$$ $$$998244353$$$, где $$$Y^{-1}$$$ — обратный элемент к $$$Y$$$ по модулю $$$998244353$$$ (такое число, что $$$Y \cdot Y^{-1}$$$ сравнимо с $$$1$$$ по модулю $$$998244353$$$).

Примеры
Входные данные
4 250000 250000
3 1 5 2
Выходные данные
530317315
Входные данные
3 125000 750000
3 2 1
Выходные данные
175472642
Примечание

Пояснения к примерам из условия:

В первом примере $$$p = \frac{1}{4}$$$, $$$q = \frac{1}{4}$$$, ответ равен $$$\frac{79}{32}$$$.

Во втором примере $$$p = \frac{1}{8}$$$, $$$q = \frac{3}{4}$$$, ответ равен $$$\frac{467}{256}$$$.

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

Монокарп играет в компьютерную игру Moonbound. Цель игры — спасти галактику от вторжения неизвестной силы при помощи мощного артефакта под названием «Манипулятор материи». Впрочем, Монокарп не занимается спасением галактики — сейчас он просто строит дом для своего персонажа.

Сейчас Монокарпу осталось построить одну из стен своего дома. Весь мир в Moonbound состоит из квадратных блоков, и стена, которую собирается строить Монокарп, — не исключение: она будет квадратной, состоять из $$$n$$$ горизонтальных рядов, в каждом из которых будет по $$$n$$$ блоков (гарантируется, что $$$n$$$ четно). Обозначим позицию, в которой будет находиться $$$j$$$-й блок в $$$i$$$-м ряду, как ($$$i$$$, $$$j$$$).

Монокарп решил построить стену из двух видов кирпича — каменного и песчаного. По мнению Монокарпа, стена будет красивой, если каменные и песчаные блоки будут располагаться в шахматном порядке: левый верхний блок должен быть каменным, блок справа от него — песчаным, блок справа от этого — каменным, и так далее; первый блок во втором ряду — песчаным, второй блок во втором ряду — каменным, и так далее. Формально, если $$$i + j$$$ делится на $$$2$$$, то в позиции ($$$i$$$, $$$j$$$) должен находиться каменный блок, иначе — песчаный.

Манипулятор материи позволяет ставить блоки в двух режимах, но у обоих этих режимов есть особые требования к позициям, в которые ставятся блоки. Назовем позицию ($$$i$$$, $$$j$$$), в которой еще не стоит блок, доступной, если она либо на границе (то есть $$$i = 1$$$, $$$i = n$$$, $$$j = 1$$$ или $$$j = n$$$), либо является соседней по стороне с какой-то позицией, в которой уже стоит блок.

Ставить блоки при помощи манипулятора материи можно двумя способами — либо выбрать какую-то доступную позицию и поставить в нее блок выбранного типа, либо выбрать квадрат $$$2 \times 2$$$, в котором есть хотя бы одна доступная позиция, и заполнить все пустые позиции в этом квадрате блоками одного и того же выбранного типа.

Монокарп хочет построить всю стену за не более чем $$$\frac{3n^2}{4}$$$ применений манипулятора. Если он поставит блок в какую-то позицию, в которой должен находиться блок другого типа, то ему придется разрушать секцию стены, а это займет очень много времени — поэтому он никогда не будет выполнять действие, которое ставит блок неправильного типа на какую-то позицию. Помогите ему составить план действий!

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

В единственной строке задано одно целое четное число $$$n$$$ ($$$2 \le n \le 50$$$) — количество рядов в стене (а также количество блоков в каждом ряду).

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

В первой строке выведите $$$k$$$ ($$$1 \le k \le \frac{3n^2}{4}$$$) — количество применений манипулятора материи, необходимых для построения стены. После этого выведите план действий Монокарпа в следующих $$$k$$$ строках, по одному действию в строке. Каждое действие должно быть описано в формате $$$t$$$ $$$x$$$ $$$y$$$ $$$b$$$:

  1. $$$t$$$ — тип действия: $$$1$$$, если заполняется одна позиция для блока, и $$$2$$$, если заполняется квадрат $$$2 \times 2$$$;
  2. $$$x$$$ $$$y$$$ — заполняемая позиция. Если действие типа $$$1$$$, то заполняется позиция ($$$x$$$, $$$y$$$) — и она должна быть доступной; если действие типа $$$2$$$, то заполняются позиции ($$$x$$$, $$$y$$$), ($$$x$$$, $$$y + 1$$$), ($$$x + 1$$$, $$$y$$$) и ($$$x + 1$$$, $$$y + 1$$$) — и хотя бы одна из них должна быть доступной;
  3. $$$b$$$ — тип блока, которым заполняются свободные позиции ($$$1$$$, если это каменный блок, и $$$2$$$, если песчаный).

Ни одно действие в плане не должно приводить к тому, что в какую-то позицию попадает блок того типа, который там не должен находиться. При заполнении квадрата $$$2 \times 2$$$ ни одна принадлежащая ему позиция не должна выходить за пределы (то есть если $$$t = 2$$$, то $$$1 \le x, y \le n - 1$$$).

Если существует несколько возможных планов с $$$k \le \frac{3n^2}{4}$$$, выведите любой из них. Помните, что блоки разных типов в построенной стене должны чередоваться в шахматном порядке, а блок в позиции ($$$1$$$, $$$1$$$) должен быть каменным.

Пример
Входные данные
2
Выходные данные
3
1 1 1 1
1 2 2 1
2 1 1 2
Примечание

Последовательность действий в первом примере (белый цвет обозначает пустую позицию, темно-серый — каменный блок, светло-серый — песчаный блок):

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

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

Про каждый стол известно, будет ли за этим столом работать команда, или же он будет свободен во время сборов.

Организаторы решили установить один принтер, чтобы участники могли распечатывать свои решения. Для этого организаторам нужно выбрать этаж и номер стола на этаже, на который будет установлен принтер. Принтер обязательно должен быть установлен на стол, при этом не важно, свободен ли будет этот стол во время сборов. То есть принтер может быть поставлен как на свободный стол, так и на стол, за которым будут сидеть участники сборов.

Введем понятие неудобства доступа к принтеру для каждой команды. Пусть команда $$$i$$$ будет участвовать в сборах на этаже $$$f_i$$$ за столом $$$a_i$$$, а принтер установлен на этаже $$$f_p$$$ на столе $$$a_p$$$. Если принтер установлен на том же этаже, на котором участвует команда $$$i$$$ (то есть $$$f_i = f_p$$$), то неудобство доступа к принтеру для команды $$$i$$$ равно $$$|a_i - a_p|$$$. Если принтер установлен на другом этаже (то есть $$$f_i \neq f_p$$$), то неудобство доступа к принтеру для команды $$$i$$$ равно $$$a_i + k + a_p$$$, то есть участникам этой команды нужно дойти до выхода со своего этажа (величина $$$a_i$$$), затем спуститься или подняться по лестнице (величина $$$k$$$) и затем дойти от входа на этаж с принтером до стола с принтером (величина $$$a_p$$$).

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

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

В первой строке следуют два целых числа $$$n$$$ и $$$k$$$ $$$(1 \le n \le 1\,000, 1 \le k \le 1\,000$$$) — количество столов на каждом этаже, а также время, которое нужно потратить на спуск или подъем по лестнице.

Во второй строке следует строка длины $$$n$$$, состоящая из нулей и единиц — описание столов на втором этаже. Если $$$i$$$-й символ строки равен единице, то за $$$i$$$-м столом на втором этаже во время сборов будет сидеть команда. В противном случае, $$$i$$$-й стол будет свободен во время сборов.

В третьей строке следует строка длины $$$n$$$, состоящая из нулей и единиц — описание столов на первом этаже. Если $$$i$$$-й символ строки равен единице, то за $$$i$$$-м столом на первом этаже во время сборов будет сидеть команда. В противном случае, $$$i$$$-й стол будет свободен во время сборов.

Гарантируется, что в сборах примет участие хотя бы одна команда, то есть в двух заданных строках будет хотя бы одна единица.

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

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

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

Примеры
Входные данные
3 2
001
001
Выходные данные
6
1 1
Входные данные
10 2
0001011011
1000000000
Выходные данные
7
2 3
Примечание

В первом примере принтер можно установить на первом этаже на стол номер $$$1$$$. Тогда неудобство для команды со второго этажа будет равно $$$3 + 2 + 1 = 6$$$, а неудобство для команды с первого этажа будет равно $$$|1 - 3| = 2$$$. Таким образом, минимально возможная максимальная величина неудобства равна $$$6$$$.