Vorg CUP, Финал, 2025-2026
A. Воппер джуниор
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Мальчик Ярослав захотел на обед съесть $$$n$$$ вопперов. Сначала он ест первый воппер, затем второй, третий и так далее. Вкусность $$$i$$$-го воппера равна $$$a_i$$$.

Так как у Ярослава СДВГ, ему тяжело есть воппер, когда его вкусность не совпадает со вкусностью предыдущего съеденного воппера, поэтому сделать так он может ровно $$$m$$$ раз. Ему стало интересно, сколько существует различных последовательностей вопперов, которые он может съесть, если вкусность каждого воппера может быть любым целым числом от $$$1$$$ до $$$k$$$.

Более формально, требуется посчитать количество последовательностей $$$a$$$ длины $$$n$$$, состоящих из чисел от $$$1$$$ до $$$k$$$, таких что существует ровно $$$m$$$ индексов $$$i$$$ ($$$2 \le i \le n$$$), для которых $$$a_i \ne a_{i-1}$$$.

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

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

В единственной строке заданы три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ ($$$0 \le m \lt n \le 10^7$$$, $$$1 \le k \le 10^9$$$) — количество вопперов, количество переходов между вопперами с разной вкусностью и максимальная возможная вкусность воппера.

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

Выведите единственное число — количество последовательностей вопперов, которые может съесть Ярослав, по модулю $$$10^9 + 7$$$.

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

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

ПодзадачаБаллыДополнительные ограниченияНеобх. подзадачи
$$$n$$$дополнительно
$$$1$$$$$$20$$$$$$n \le 8$$$$$$k \le 8$$$У
$$$2$$$$$$15$$$—$$$m = n - 1$$$—
$$$3$$$$$$25$$$$$$n \le 1\,000$$$—У, 1
$$$4$$$$$$40$$$——У, 1–3
Примеры
Входные данные
3 2 4
Выходные данные
36
Входные данные
4 2 4
Выходные данные
108
Входные данные
8 4 5
Выходные данные
44800

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

Работа на кухне ресторана «Бургер Кинг» — настоящее искусство, особенно когда дело касается сборки легендарного Воппера!

Перед вами находится прямоугольный органайзер с ингредиентами, представляющий собой матрицу размера $$$n \times m$$$. Органайзер заполнен настолько разнообразными компонентами (от хрустящего маринованного огурчика до фирменного соуса), что каждый из них уникален. Каждой ячейке присвоен уровень важности от $$$0$$$ до $$$n \cdot m - 1$$$, причём все уровни встречаются ровно по одному разу. Уровень важности ингредиента, расположенного в $$$i$$$-й строке и $$$j$$$-м столбце, равен $$$a_{i, j}$$$.

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

Вкус идеального Воппера определяется тем, насколько последовательно собраны базовые ингредиенты. Формально, вкус бургера равен $$$\operatorname{MEX}$$$ множества уровней важности ингредиентов в зачерпнутой подматрице.

Напомним, что $$$\operatorname{MEX}$$$ (Minimum Excluded) множества чисел — это минимальное неотрицательное целое число, которое не принадлежит этому множеству. Например, $$$\operatorname{MEX}$$$ множества $$$\{0, 1, 3, 4\}$$$ равен $$$2$$$, а $$$\operatorname{MEX}$$$ множества $$$\{1, 2\}$$$ равен $$$0$$$.

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

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

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

В первой строке заданы три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ ($$$1 \le n, m \le 200\,000$$$, $$$1 \le n \cdot m \le 200\,000$$$, $$$1 \le k \le n \cdot m$$$) — размеры матрицы-органайзера и максимально допустимая площадь подматрицы.

В следующих $$$n$$$ строках заданы по $$$m$$$ целых чисел $$$a_{i, j}$$$ ($$$0 \le a_{i, j} \lt n \cdot m$$$) — матрица ингредиентов. Гарантируется, что каждое число от $$$0$$$ до $$$n \cdot m - 1$$$ встречается в матрице ровно один раз.

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

Выведите единственное целое число — максимально возможный $$$\operatorname{MEX}$$$ подматрицы площади не более $$$k$$$, который можно получить, сделав не более одного обмена элементов.

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

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

ПодзадачаБаллыДополнительные ограниченияНеобх. подзадачи
$$$1$$$$$$12$$$$$$n, m \le 20$$$У
$$$2$$$$$$15$$$$$$n = 1$$$ или $$$m = 1$$$—
$$$3$$$$$$18$$$$$$k \le 100$$$У, 1
$$$4$$$$$$22$$$ответ не требует обмена—
$$$5$$$$$$33$$$—У, 1–4
Примеры
Входные данные
3 3 4
0 1 8
2 7 6
3 5 4
Выходные данные
4
Входные данные
1 5 3
0 1 4 3 2
Выходные данные
3

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

Что может быть лучше воппера? Только двойной воппер! А что насчёт $$$k$$$-ного воппера? Боб захотел нажраться как свинья, но Алиса хочет ему помешать!

В «Бургер Кинге» провели реформу, и теперь там есть $$$n$$$ касс, пронумерованных от $$$0$$$ до $$$n - 1$$$. Для каждой кассы заданы два числа: $$$a_i$$$ и $$$k_i$$$ — соответственно изменение количества котлет в воппере при посещении этой кассы и её важность. Значение $$$a_i$$$ может быть отрицательным, тогда количество котлет уменьшается.

Все посетители начинают путь с кассы $$$n - 1$$$ и затем переходят между кассами, пока не дойдут до кассы $$$0$$$. Находясь в кассе с номером $$$i$$$ ($$$0 \lt i \lt n$$$), можно перейти либо в кассу с номером $$$i - 1$$$, либо выбрать число $$$b$$$ ($$$1 \lt b \le k_i$$$) и перейти в кассу с номером $$$\lfloor i / b \rfloor$$$.

До посещения кассы $$$n-1$$$ в воппере Боба содержится $$$10^{100}$$$ котлет (вы думали, мы блефовали в первом абзаце?). При посещении кассы с номером $$$i$$$ к вопперу обязательно добавляется $$$a_i$$$ котлет, не взять котлеты нельзя. Алиса и Боб ходят по очереди, причём Алиса ходит первой. Алиса стремится минимизировать итоговое количество котлет, а Боб — максимизировать его. Во время своего Алиса или Боб выбирают следующую кассу, в которую они перейдут.

Определите, сколько котлет будет в воппере при оптимальной игре обоих игроков.

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

В первой строке задано одно целое число $$$n$$$ ($$$2 \le n \le 200\,000$$$) — количество касс в «Бургер Кинге».

Во второй строке заданы $$$n$$$ целых чисел $$$a_i$$$ ($$$-10^9 \le a_i \le 10^9$$$) — изменения количества котлет на кассах.

В третьей строке заданы $$$n$$$ целых чисел $$$k_i$$$ ($$$2 \le k_i \le n$$$) — важности касс.

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

Пусть при оптимальной игре Алисы и Боба в воппере окажется $$$10^{100}+x$$$ котлет. Тогда вам требуется вывести единственное целое число $$$x$$$.

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

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

ПодзадачаБаллы$$$n$$$ДополнительноНеобх. подзадачи
110$$$n \le 10$$$—У
215$$$n \le 20$$$$$$k_i = 2$$$—
315—$$$a_i \ge 0$$$—
415$$$n \le 1\,000$$$—У, 1, 2
520$$$n \le 60\,000$$$—У, 1, 2, 4
610$$$n \le 100\,000$$$—У, 1, 2, 4, 5
715——У, 1–6
Примеры
Входные данные
5
1 -1 2 3 -1
2 2 3 4 3
Выходные данные
-1
Входные данные
5
0 -5 2 1 -5
5 2 2 2 2
Выходные данные
-8

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

Во времена Великого Ангуса, когда в королевстве «Бургер Кинг» ещё только складывались древние рецепты, каждый элемент массива считался отдельным ингредиентом для священного бургера. Число $$$a_i$$$ означало, какой именно ингредиент лежит на $$$i$$$-й полке королевской кладовой, всего полок было $$$n$$$.

Но в день Великого Ангусения жрецам было поручено необычное дело. Из отрезка кладовой с $$$l$$$-й по $$$r$$$-ю полку нужно было собрать ровно $$$k$$$ корзин ингредиентов, причём:

  • ингредиент с $$$i$$$-й полки должен оказаться не более чем в одной корзине;
  • в каждой корзине $$$\operatorname{MEX}$$$ набора ингредиентов должен быть равен $$$x$$$.

Здесь $$$\operatorname{MEX}$$$ — это наименьшее неотрицательное число, которого нет в выбранной корзине: именно оно считалось номером недостающего ингредиента в великом рецепте Ангуса.

Жрецы «Бургер Кинга» верили: если на отрезке кладовой посчитать количество способов собрать таким образом корзины, то в этот день Ангус будет особенно сочным, а королевство — сытым и довольным.

Так и поступают мудрецы: для каждого запроса с границами отрезка $$$[l, r]$$$ и числом $$$x$$$ они считают, сколькими способами можно выбрать множество из $$$k$$$ попарно непересекающихся подпоследовательностей $$$a_l, a_{l+1}, \ldots, a_r$$$ так, чтобы каждая подпоследовательность имела $$$\operatorname{MEX}$$$ равный $$$x$$$.

Обратите внимание, что две подпоследовательности считаются различными, если они состоят из элементов с различными индексами в массиве $$$a$$$. Например, в массиве $$$a = [0, 0, 0]$$$ на отрезке $$$[1,3]$$$ существует $$$7$$$ непустых подпоследовательностей с $$$\operatorname{MEX}$$$ равным $$$1$$$.

Вам предстоит выступить в роли мудреца и посчитать количество таких способов. Так как их может быть очень много, достаточно вывести ответы по модулю $$$10^9 + 7$$$.

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

В первой строке заданы три целых числа $$$n$$$, $$$q$$$ и $$$k$$$ ($$$1 \le n, q \le 100\,000$$$, $$$1 \le k \le \min{(n, 1000)}$$$) — количество полок, количество запросов и количество корзин соответственно.

Во второй строке заданы $$$n$$$ целых чисел $$$a_i$$$ ($$$0 \le a_i \le n$$$) — ингредиенты на полках.

Каждая из следующих $$$q$$$ строк содержит описание одного запроса. В ней заданы три целых числа $$$l_i$$$, $$$r_i$$$ и $$$x_i$$$ ($$$1 \le l_i \le r_i \le n$$$, $$$1 \le x_i \le n$$$) — границы отрезка и требуемое значение $$$\operatorname{MEX}$$$ соответственно.

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

Выведите $$$q$$$ строк, в каждой из которых должно находиться одно число — ответ на соответствующий запрос по модулю $$$10^9 + 7$$$.

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

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

ПодзадачаБаллы$$$n$$$ДополнительноНеобх. подзадачи
17$$$n \le 8$$$—У
24—$$$k = n$$$—
312—$$$a_i = 0$$$—
413$$$n \le 3\,000$$$$$$k = 1$$$—
514$$$n \le 3\,000$$$—У, 1, 4
616—$$$k = 1$$$4
713—$$$l_i = 1$$$, $$$r_i = n$$$—
821——У, 1–7
Примеры
Входные данные
3 2 2
0 1 0
1 3 1
2 3 2
Выходные данные
1
0
Входные данные
6 3 1
0 1 2 3 4 5
3 6 1
1 4 2
1 6 6
Выходные данные
0
2
1
Входные данные
8 8 2
0 1 2 0 0 1 2 1
1 6 1
4 5 1
4 4 1
2 5 2
1 8 3
1 8 2
1 8 1
4 7 2
Выходные данные
18
1
0
0
144
72
54
0