Bredor contest
A. Задача для души
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
16 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Чтобы решить эту задачу нужно решить уравнение или прислушаться к своему сердцу.

Найдите корень $$$x$$$ уравнения $$$$$$ \bigg(\sqrt{x-3} - \sqrt[3]{\frac{3x+2}{2}}\bigg)^7 = \bigg(x - \sqrt{\frac{x^2-1984}{5}}\bigg)^3. $$$$$$ Гарантируется, что уравнение имеет единственное целое решение $$$x$$$.

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

Выведите одно целое число $$$x$$$ — корень уравнения.

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

Выход в синий цвет на Codeforces — большой повод для гордости, особенно если тебе десять лет. Пятиклассник Вася недавно вышел в синий цвет, и, в связи с этим, решил реализовать новый сложный алгоритм, который он прочитал на сайте e-maxx. Алгоритм называется «Обратный элемент в кольце по модулю». Суть алгоритма в том, что он позволяет находить обратный элемент в кольце по модулю.

Вася решил реализовать алгоритм и с его помощью сдать задачу на известной платформе для юных программистов — Codeforces. Задача заключалась в следующем: на вход даются два числа: $$$n$$$ и $$$M$$$ ($$$1 \le n \lt M \le 10^9 +7$$$), и нужно вывести одно такое число $$$k$$$, что $$$n \cdot k \equiv 1 (\mod M)$$$; $$$1 \le k \lt M$$$; $$$M$$$ - простое.

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

Помогите Васе восстановить его неправильное решение!

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

Два целых числа через пробел: $$$n$$$ и $$$M$$$, $$$1 \le n \lt M \le 10^9+7$$$.

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

Выведите одно целое число $$$k$$$ — вывод программы Васи для данного теста.

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

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

Маленький Лёша учится в шестом классе. Лёша не самый выдающийся ученик, поэтому его интересы весьма специфичны. В частности, он любит смотреть китайские мультики для детей — аниме.

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

На полке находится n предметов. Предметы лежат в ряд, то есть их можно пронумеровать от $$$1$$$ до $$$n$$$. $$$i$$$-ый предмет может быть либо мусором, либо диском с аниме. Лёша помнит, сколько дисков с аниме у него всего было — $$$k$$$, и про $$$i$$$-ый диск он помнит, что он стоял на какой-то позиции между $$$l_i$$$ и $$$r_i$$$, включительно.

Помогите Лёше провести уборку дома и вернуть надежду на светлое будущее.

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

В первой строке даны два целых числа через пробел: $$$n$$$, $$$k$$$. В каждой из последующих $$$k$$$ строк также находятся по два целых числа: $$$l_i$$$, $$$r_i$$$.

$$$1 \le n \le 100228$$$

$$$0 \le k \le n$$$

$$$1 \le l_i \le r_i \le n$$$

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

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

Пример
Входные данные
5 0
Выходные данные
1 1 1 1 1

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

На сайте БрутФорсез решили провести новый формат командных соревнований: все тесты к задачам открытые, и в одной команде может быть произвольное количество участников. Итоговая добавка к рейтингу, конечно же, поровну разделяется между всеми членами команды.

На первом же контесте организаторы предложили следующую непростую задачу:

«Дана таблица $$$S$$$ размера $$$m \times n$$$. В клетке $$$S_{i, j}$$$ (где $$$1 \leqslant i \leqslant m, 1 \leqslant j \leqslant n$$$) написана сумма чисел от $$$1$$$ до $$$i+j$$$. Для заданных чисел $$$a, b$$$ выведите сумму по подтаблице с угловыми клетками $$$S_{1, 1}$$$ и $$$S_{a, b}$$$».

Всего к этой задаче было составлено $$$T$$$ тестов.

Прочитав условие задачи, синий кодер Вася быстро сообразил, как ее решать — если бы мы знали, какое число написано в каждой из клеток, то алгоритмом решения было бы обыкновенное дерево Фенвика!

Дело осталось за малым — надо найти значение в необходимых клетках доски (но не обязательно во всех). Для этого он решил позвать в свою команду нескольких зеленых кодеров, чтобы дать каждому по клетке $$$S_{i, j}$$$ и попросить посчитать число в ней. Так как итоговая добавка к рейтингу поровну делится между членами команды, Вася хочет пригласить как можно меньше кодеров, а потому посчитать числа только в тех клетках, которые нужны для вычисления ответа в хотя бы одном из тестов (то есть, которые содержатся хотя бы в одной подтаблице).

Какое минимальное число кодеров ему надо пригласить в команду, чтобы осуществить задуманное?

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

В первой строке даны два целых числа – размеры таблицы $$$m, n$$$

Во второй строке число тестов $$$T$$$ к задаче.

Дальше, на $$$T$$$ строках, по два числа — $$$a, b$$$ — координаты одного из углов соответствующей подтаблицы.

$$$1 \leqslant m, n \leqslant 5000$$$

$$$1 \leqslant T \leqslant 1000$$$

$$$1 \leqslant a \leqslant m$$$

$$$1 \leqslant b \leqslant n$$$

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

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

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

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

Как всем давно известно, граница для красного цвета на ЦФе рассчитывается так, чтобы проходить строго над рейтингом Адаманта. Однако недавно, по ошибке алгоритмов пересчета рейтинга, Адамант все-таки попал в красный. Увидев это, Майк понял, что систему надо срочно чинить. Чтобы решить проблему надолго, он хочет придумать новую систему дивизионов, чтобы Адамант попал в див 2, откуда ему будет снова далеко до красного.

Конечно, идеальным решением было бы просто поставить заглушку if rating $$$\leqslant$$$ adamant.rating then div = max (div, 2) в уже существующую функцию, но это было бы очень подозрительно. Поэтому Майк придумал следующую, достаточно замысловатую, процедуру:

Сперва Майк выбирает целочисленный параметр $$$k \geqslant 0$$$. Затем, он подсчитывает значение функции $$$f = f(r-k, r)$$$, где $$$r$$$ – рейтинг пользователя, а $$$$$$ f(n, x) := (1 + x + x^2/2! + x^3/3! + \dots + x^n/n!)/e^x. $$$$$$ Наконец, дивизион пользователя определяется по формуле div = $$$int(1/f) - 1$$$, где функция $$$int(x)$$$ возвращает максимальное целое число, не превосходящее $$$x$$$. Майк уверен, что в связи с появлением на платформе див 3 и див 4, такая функция будет более честной не только по отношению к Адаманту, но и по отношению вообще ко всем пользователям.

По заданному рейтингу Адаманта, найдите минимальное $$$k$$$, чтобы по описанному алгоритму ему присвоился дивизион, строго больший $$$1$$$.

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

На первой строке находится число $$$T, 1 \leqslant T \leqslant 20$$$ — количество тестов. На каждой из последующих $$$T$$$ строк находится $$$r$$$ — рейтинг Адаманта, $$$5 \leqslant r \leqslant 4000$$$.

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

$$$T$$$ строк, на каждой единственное целое число $$$k \geqslant 0$$$ — минимальный такой параметр, что описанный алгоритм вернет число, большее единицы. Гарантируется, что такое неотрицательное $$$k$$$ существует.

Примеры
Входные данные
1
5
Выходные данные
2
Входные данные
2
100
200
Выходные данные
5
7
Входные данные
3
2500
3000
3500
Выходные данные
23
25
27
Примечание

Как обычно, $$$e = 2.718281828459045\dots$$$ — константа Эйлера.

В числителе же дроби стоит неполное разложение $$$e^x$$$ в ряд Тейлора $$$$$$ e^x = 1 + x/1! + x^2/2! + \dots + x^n/n! + \dots. $$$$$$

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

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

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

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

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

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

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

В первой строке задано число $$$n$$$ — число вопросов и ответов ($$$1 \le n \le 800$$$). Затем $$$n$$$ строк с вопросами. Затем $$$n$$$ строк с возможными ответами.

Каждая строка состоит из строчных латинских букв, пробелов и символов "?", "!" и ")".

Суммарная длина строк не превосходит $$$200000$$$.

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

В первой строке выведите ответ — полученное значение метрики (сумму рифмованности по всем парам вопрос-ответ). Затем в $$$2n$$$ строках выведите пары вопрос-ответ: вопросы в том же порядке, что и во входных данных, после каждого вопроса ответ на него.

Примеры
Входные данные
5
zdraste!
kak dela?
gde byl?
a voobshe kak sam?
horosho poka
poka ne rodila
pivo pyl
zabor pokraste
ne zabud vyrvat dvoiku s dnevnika
privet tvoei madam
Выходные данные
13
zdraste!
zabor pokraste
kak dela?
poka ne rodila
gde byl?
pivo pyl
a voobshe kak sam?
privet tvoei madam
horosho poka
ne zabud vyrvat dvoiku s dnevnika
Входные данные
5
here comes adamant!
i hope he will add anime to contest!
is it rated?
well, have fun and good luck!
when the ratings would update??
you sure will fail iq test
when you would have a date))
try not to suck)
he does not use deodarant
obosrated!
Выходные данные
19
here comes adamant!
he does not use deodarant
i hope he will add anime to contest!
you sure will fail iq test
is it rated?
obosrated!
well, have fun and good luck!
try not to suck)
when the ratings would update??
when you would have a date))
Примечание

Предположим, мы хотим подсчитать рифмованность для строк

"abc d ef!!!" и "lol k e k cd?)ef?"

Для подсчета рифмованности убираем все символы из строк, кроме маленьких букв: "abcdef", "lolkekcdef" и вычисляем длину общего суффикса. Она равна 4.

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

За экстраординарные достижения в учебе, Рудольф Вениаминович Готов был единственным, кто после вуза распределился работать в школу учителем математики. В классе, где ведет Рудольф, ровно $$$m$$$ учеников. Урок математики у Рудольфа проходит так. Он раздает листок с $$$n$$$ (где $$$n \geqslant m$$$) задачами. Затем он вызывает учеников к доске, используя генератор случайных чисел. На первом шагу, генератор генерирует число $$$t_1$$$ и Рудольф вызывает первого ученика к доске решать задачу под номером $$$t_1$$$. На втором шагу, генератор генерирует число $$$t_2$$$, и Рудольф вызывает второго ученика решать задачу под номером $$$t_2$$$, и так далее, до $$$m$$$-го ученика. Генератор запрограммирован так, что последовательность $$$t_i$$$ является возрастающей и никогда не превосходит $$$n$$$, то есть, выполнены неравенства $$$$$$ 1 \leqslant t_1 \lt t_2 \lt \cdots \lt t_m \leqslant n. $$$$$$

Если ученик не может решить задачу у доски, Рудольф Вениаминович дает ему щелбан. Рудольфу Вениаминовичу уже надоело преподавание, поэтому единственной его целью на уроке теперь является раздать каждому ученику по щелбану. Для этого он подобрал ровно $$$m$$$ сложных задач (которые сам не может решить), и хочет перенастроить генератор случайных чисел таким образом, чтобы он генерировал ровно их номера.

Чтобы не вызвать подозрений, Рудольф придумал следующий алгоритм для генератора: тот, получая на вход число $$$n$$$ (то есть, число задач) генерирует числа, имеющие хотя бы один общий делитель с $$$n$$$ — Рудольф уверен, что такая последовательность будет выглядеть самой что ни на есть случайной. Например, для числа $$$n=12$$$ будут сгенерированы числа $$$2, 3, 4, 6, 8, 9, 10, 12$$$. Имея такой «случайный» генератор, Рудольф заранее знает, какие числа будут сгенерированы, и может поставить на нужные места в листочке свои сложные задачи. Однако, Рудольф столкнулся с проблемой — не так-то просто оказалось придумать такое число $$$n$$$, что генератор выдаст ровно $$$m$$$ чисел!

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

Натуральное число $$$2 \leqslant m \leqslant 10^8$$$

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

Такое натуральное $$$n \leqslant 10^{12}$$$, что генератор сгенерирует ровно $$$m$$$ чисел.

Примеры
Входные данные
8
Выходные данные
12
Входные данные
9
Выходные данные
21
Входные данные
200
Выходные данные
398
Примечание

Гарантируется, что для любого $$$m$$$ из тестов найдется хотя бы одно такое $$$n$$$.