Кирилл Евгеньевич, как обычно, опаздывает на первый урок... Кабинет, конечно, открыл Данила Сергеевич, но обида на своего учителя, который продолжает повторять свои ошибки, только накапливается. Нужно проучить Кирилла Евгеньевича!
Внезапно кому-то пришла идея покопаться в шкафу. Там оказалось $$$n$$$ брусков от разломанного креста, подаренного на Новый Год. Чтобы испугать и наказать виновника, нужно составить что-то страшное — невырожденный треугольник$$$^{\text{∗}}$$$ с огромным периметром!
Так как делать вручную это сложно, помоги нам понять, какого максимального периметра можно получить треугольник, или $$$-1$$$, если не получится составить ни один треугольник. Два бруска не могут образовывать одну сторону. То есть, например, при наличии брусков $$$1,1,2,2$$$ нельзя сделать треугольник со сторонами $$$2$$$, $$$2$$$ и $$$1+1$$$.
$$$^{\text{∗}}$$$Невырожденным считается треугольник со сторонами $$$(a,b,c)$$$, для которого выполняется следующая система неравенств: $$$ \left\{ \begin{array}{c} a + b \gt c \\ b + c \gt a \\ c + a \gt b \end{array}\right.$$$
В первой строке входных данных вводится единственное целое число $$$n$$$ ($$$3 \le n \le 10^5$$$) — количество брусков, найденных в шкафу.
Во второй строке вводится $$$n$$$ целых чисел $$$a_i$$$ ($$$1 \le a_i \le 10^9$$$) — длины брусков, найденных в шкафу.
В единственной строке выведите максимальный периметр, который можно получить, или $$$-1$$$, если нельзя составить ни один треугольник.
| № | Доп. ограничения | Баллы | Необх. группы | Комментарий |
| $$$0$$$ | — | — | — | Тесты из условия |
| $$$1$$$ | $$$n \le 200$$$ | $$$39$$$ | — | — |
| $$$2$$$ | $$$n \le 1000$$$ | $$$22$$$ | $$$1$$$ | — |
| $$$3$$$ | — | $$$39$$$ | $$$0-2$$$ | — |
53 6 2 7 4
17
31 2 9
-1
Вам дан набор из $$$n$$$ гирек, где $$$a_i$$$ — вес $$$i$$$-й гирьки. В магазине есть бесконечное количество товаров каждого натурального веса.
У вас в магазине есть только чашечные весы, на правую чашу которых вы можете класть только товар, а на левую чашу только гирьки. Вашей задачей является определить такой максимальный вес $$$p$$$, что любой товар в магазине, который весит не более $$$p$$$, можно однозначно (то есть вы гарантированно можете сказать, какой вес у того или иного товара) определить с помощью данных чашечных весов за неограниченное количество взвешиваний.
В первой строке входных данных вводится единственное целое число $$$n$$$ ($$$1 \le n \le 2 \cdot 10^5$$$) — количество гирек в вашем распоряжении.
Во второй строке входных данных вводится $$$n$$$ чисел $$$a_i$$$ ($$$1 \le a_i \le 10^9$$$) — веса гирек в вашем распоряжении.
В единственной строке выходных данных вам нужно вывести одно число, максимальный вес $$$p$$$. Если вы не можете однозначно определить вес ни одного товара, следует вывести $$$0$$$.
| № | Доп. ограничения | Баллы | Необх. подгруппы | Комментарий | |
| $$$n$$$ | $$$a_i$$$ | ||||
| $$$0$$$ | — | — | — | — | Тесты из условия |
| $$$1$$$ | — | $$$a_i \le i$$$ | $$$8$$$ | — | — |
| $$$2$$$ | $$$n \le 18$$$ | — | $$$12$$$ | — | — |
| $$$3$$$ | $$$n \le 100$$$ | $$$\sum a_i \le 10^4$$$ | $$$17$$$ | — | — |
| $$$4$$$ | $$$n \le 1000$$$ | $$$a_i \le 1000$$$ | $$$36$$$ | $$$3$$$ | — |
| $$$5$$$ | — | — | $$$27$$$ | $$$0-4$$$ | — |
44 2 3 1
10
21 3
4
Это интерактивная задача
Представьте, что вы оказались в одной небезызвестной игре следователем. Вам предстоит разоблачить $$$n$$$ девиантов, которые совершили вопиющие преступления. У каждого андроида $$$i$$$ есть мера наказания $$$a_i$$$ ($$$1 \le a_i \le 10^9$$$, $$$a_i$$$ — целое) и параметр стресса $$$c_i$$$, изначально равный нулю. Так как времени у нас мало, вам предстоит провести параллельный допрос. Одним вопросом вы можете выкрикнуть во всеуслышанье (все не сознавшиеся девианты услышат ваше заявление) «$$$X$$$ ударов ножом! Ты действовал наверняка!». Каждый девиант воспринимает это высказывание на свой счет и начинает думать:
Когда девиант сознался, он выходит из комнаты допроса и не слышит никакие дальнейшие вопросы.
Ваша задача заключается в том, чтобы все девианты сознались, а также узнать их меры наказания. Если хотя бы один девиант не сознался, вы получите вердикт Wrong Answer даже если выведите правильные меры наказания. Также в некоторых подгруппах от вас не будет требоваться узнать меры наказаний, достаточно лишь добиться того, что все сознались.
В единственной строке вводится три целых числа $$$n$$$, $$$k$$$, $$$t$$$ ($$$3 \le n \le 100$$$, $$$30 \le k \le 1000$$$, $$$0 \le t \le 1$$$) — количество девиантов в участке, максимальное количество вопросов, которое можно задать, и параметр, отвечающий за то, нужно ли выводить все меры наказаний или достаточно лишь, чтобы все сознались.
В этой задаче вы можете делать вопросы двух типов:
После очередного запроса интерактор возвращает следующие данные:
В первой строке вводится число $$$m$$$ ($$$0 \le m \le n$$$), количество девиантов, которые хотят признаться.
В следующих $$$m$$$ строках вводится по $$$n + 1$$$ числу: $$$j$$$ и $$$n$$$ чисел $$$b_i$$$, где $$$b_i = a_j + a_i$$$ для всех $$$j \neq i$$$. Для $$$i = j$$$, $$$b_i = 0$$$. Номер признающегося девианта и информация про подельников соответственно.
Гарантируется, что каждый девиант, если признается, будет признаваться только один раз.
После совершения данного запроса, ваша программа должна завершиться.
Интерактор в данной задаче является неадаптивным
После вывода каждого запроса не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для этого используйте:
| № | Доп. ограничения | Баллы | Необх. группы | Комментарий | ||
| $$$k$$$ | $$$a_i$$$ | $$$t$$$ | ||||
| $$$0$$$ | — | — | — | — | — | Тесты из условия |
| $$$1$$$ | $$$k = \max(n, 30)$$$ | — | $$$t=0$$$ | $$$6$$$ | — | $$$a_1 = 1$$$ |
| $$$2$$$ | $$$t=1$$$ | $$$7$$$ | $$$1$$$ | |||
| $$$3$$$ | $$$k = 1000$$$ | $$$a_i \le 1000$$$ | $$$ t=0$$$ | $$$9$$$ | — | — |
| $$$4$$$ | $$$t=1$$$ | $$$10$$$ | $$$3$$$ | |||
| $$$5$$$ | $$$a_i \le 5 \cdot 10^5$$$ | $$$t = 0$$$ | $$$10$$$ | $$$3$$$ | — | |
| $$$6$$$ | $$$t=1$$$ | $$$11$$$ | $$$3-5$$$ | |||
| $$$7$$$ | $$$k = 30$$$ | — | $$$t=0$$$ | $$$8$$$ | — | $$$a_i$$$ — степень двойки |
| $$$8$$$ | $$$t=1$$$ | $$$8$$$ | $$$7$$$ | |||
| $$$9$$$ | $$$t=0$$$ | $$$15$$$ | $$$1,3,5,7$$$ | — | ||
| $$$10$$$ | $$$t=1$$$ | $$$16$$$ | $$$0-9$$$ | |||
4 30 0 1 1 0 8 7 9 3 2 8 0 9 11 3 7 9 0 10 4 9 11 10 0
? 3 ? 3 ! 0 0 0 0
4 30 1 1 1 0 8 7 9 3 2 8 0 9 11 3 7 9 0 10 4 9 11 10 0
? 3 ? 3 ! 3 5 4 6
Разберем, что происходит в примере:
Сначала прозвучало "3 удара ножом". Первый девиант сознался поскольку его стресс достиг его меры наказания ($$$0 + 3 \ge 3$$$). Стресс всех андроидов: $$$3$$$, $$$3$$$, $$$3$$$, $$$3$$$
Дальше еще раз прозвучало "3 удара ножом". Все девианты сознались, потому что их стрессы достигли $$$6$$$. Соответственно $$$3 + 3 \ge 5$$$, $$$3 + 3 \ge 4$$$, $$$3 + 3 \ge 6$$$ для второго, третьего и четвертого девиантов.
Так как все сознались, можно вывести меры наказания. Они оказались $$$3$$$, $$$5$$$, $$$4$$$ и $$$6$$$.
Обратите внимание, что пустые строки оставлены лишь для наглядного взаимодействия, их выводить не нужно
Автобусы на Ленинском стали редко ходить. Марк стал жертвой такой транспортной реформы и из-за этого постоянно опаздывает в школу. Это никому не нравилось, даже Марку, поэтому он решил оптимизировать свой маршрут другими способами. А именно, самокатами.
Известно, что Марк ходит со скоростью $$$a$$$ м/с, а самокат едет со скоростью $$$b$$$ м/с ($$$b \gt a$$$). Марк выбирает самокат следующим образом — приложение ему подсказывает круг с центром в локации Марка минимального радиуса, содержащий хотя бы один самокат, а также отмечает на этом круге все самокаты (в некоторых точках могут стоять сразу несколько самокатов). Марк выбирает из них такой, что суммарное время хождения до него и поездки на самокате до школы минимальное. Если идти пешком окажется не хуже, Марк пойдет пешком, иначе поедет на этом самокате.
Марку понравился его метод путешествий до школы, поэтому он решил использовать его не только для школы, но и для других точек города. А именно, в $$$q$$$ дней ему надо добраться до точки ($$$x_i, y_i$$$). Он живёт в точке ($$$0, 0$$$). В каждый из дней окружность и самокаты будут одни и те же (так как компании возвращают самокаты на место). Всегда будет $$$n$$$ самокатов на одинаковом расстоянии от ($$$0, 0$$$). Для каждого из дней выведите время в пути от дома Марка до очередной точки.
В первой строке входных данных вводится четыре целых числа $$$n,q,a,b$$$ ($$$1 \le n \le 10^5, 1 \le q \le 2 \cdot 10^5$$$, $$$1 \le a \lt b \le 10^9$$$) — количество самокатов, которые приложение показывает Марку, количество дней, в которые Марку предстоит путешествовать, скорость путешествия пешком и скорость путешествия на самокате соответственно.
В следующих $$$n$$$ строках вводится по два целых числа $$$x_j, y_j$$$ ($$$-10^9 \le x_j,y_j \le 10^9$$$) — точка, в которой расположен $$$j$$$-й самокат.
В следующих $$$q$$$ строках вводится по два целых числа $$$x_i, y_i$$$ ($$$-10^9 \le x_i,y_i \le 10^9$$$) — точка, куда нужно добраться Марку в $$$i$$$-й день.
В $$$q$$$ строках выведите время в пути Марка от дома до очередной точки.
Ваш ответ считается правильным, если его абсолютная или относительная ошибка не превышает $$$10^{-6}$$$. Формально, пусть ваш ответ будет $$$a$$$, а ответ жюри — $$$b$$$. Ваш ответ принимается, если и только если $$$\frac{\left|a-b\right|}{\max(1, |b|)}$$$.
| № | Доп. ограничения | Баллы | Необх. группы | Комментарий | |
| $$$n$$$ | $$$q$$$ | ||||
| $$$0$$$ | — | — | — | — | Тесты из условия |
| $$$1$$$ | $$$n \le 1000$$$ | $$$q \le 1000$$$ | $$$29$$$ | $$$0$$$ | |
| $$$2$$$ | — | — | $$$24$$$ | — | $$$|x|, |y| \le 20$$$ |
| $$$3$$$ | — | — | $$$15$$$ | — | $$$x,y \ge 0$$$ |
| $$$4$$$ | — | — | $$$13$$$ | $$$3$$$ | $$$y \ge 0$$$ |
| $$$5$$$ | — | — | $$$19$$$ | $$$0-4$$$ | — |
2 4 1 3-3 44 30 -78 6-6 80 15
7.00000000000000000000 6.66666666666666666652 6.66666666666666666652 8.80058475033045972680
3 4 1 20 100 100 -103 40 150 -1520 0
5.00000000000000000000 12.50000000000000000000 12.50000000000000000000 20.00000000000000000000
Обозначим за rad$$$(n)$$$ произведение всех различных простых делителей числа $$$n$$$. Например, rad$$$(504)$$$ = rad$$$(2^3 \cdot 3^2 \cdot 7)$$$ $$$= 2 \cdot 3 \cdot 7$$$ $$$=42$$$. Положим rad$$$(1) = 1$$$.
Условие этой задачи просто: у вас есть массив $$$a$$$ размера $$$n$$$. Вам дано $$$q$$$ запросов $$$[\ell;r]$$$, посчитать rad произведения чисел $$$a_\ell, a_{\ell + 1}, \dots, a_r$$$, то есть: $$$$$$\displaystyle\texttt{rad}\left(\prod_{i=\ell}^{r} a_i\right) = \texttt{rad}\left(a_\ell \times a_{\ell + 1} \times \dots \times a_r \right)$$$$$$ Так как это число может быть довольно большим, выведите его по модулю $$$10^9 + 7$$$.
В первой строке входных данных вводятся два числа $$$n,q$$$ ($$$1 \le n,q \le 5 \cdot 10^5$$$), количество элементов в массиве и количество запросов.
Во второй строке входных данных вводится $$$n$$$ чисел $$$a_i$$$ ($$$1 \le a_i \le 2 \cdot 10^5$$$), массив $$$a$$$.
В следующих $$$q$$$ строках вводится по два числа $$$\ell, r$$$ ($$$1 \le \ell \le r \le n$$$), границы очередного запроса.
В $$$q$$$ строках выходных данных выведите по одному числу, ответ на задачу по модулю $$$10^9 + 7$$$.
| № | Доп. ограничения | Баллы | Необх. группы | Комментарий | ||
| $$$n$$$ | $$$q$$$ | $$$a_i$$$ | ||||
| $$$0$$$ | — | — | — | — | — | Тесты из условия |
| $$$1$$$ | $$$n \le 100$$$ | $$$q \le 100$$$ | $$$a_i \le 100$$$ | $$$8$$$ | $$$0$$$ | — |
| $$$2$$$ | — | $$$9$$$ | $$$1$$$ | — | ||
| $$$3$$$ | $$$n \le 1000$$$ | $$$q \le 1000$$$ | $$$a_i \le 1000$$$ | $$$10$$$ | $$$1$$$ | — |
| $$$4$$$ | — | $$$11$$$ | $$$1-3$$$ | — | ||
| $$$5$$$ | — | — | — | $$$11$$$ | — | Все $$$a_i$$$ простые и различные |
| $$$6$$$ | — | — | $$$a_i \le 300$$$ | $$$12$$$ | $$$0-2$$$ | — |
| $$$7$$$ | $$$n \le 5 \cdot 10^4$$$ | $$$q \le 5 \cdot 10^4$$$ | — | $$$7$$$ | $$$0,1,3$$$ | — |
| $$$8$$$ | $$$n \le 10^5$$$ | $$$q \le 10^5$$$ | — | $$$4$$$ | $$$7$$$ | — |
| $$$9$$$ | $$$n \le 2 \cdot 10^5$$$ | $$$q \le 2 \cdot 10^5$$$ | — | $$$4$$$ | $$$8$$$ | — |
| $$$10$$$ | $$$n \le 3 \cdot 10^5$$$ | $$$q \le 3 \cdot 10^5$$$ | — | $$$3$$$ | $$$9$$$ | — |
| $$$11$$$ | $$$n \le 4 \cdot 10^5$$$ | $$$q \le 4 \cdot 10^5$$$ | — | $$$2$$$ | $$$10$$$ | — |
| $$$12$$$ | — | — | — | $$$7$$$ | $$$5$$$ | Все $$$a_i$$$ простые |
| $$$13$$$ | — | — | — | $$$12$$$ | $$$0-12$$$ | — |
5 642 35 11 26 131 32 43 51 52 24 5
2310 10010 286 30030 35 26
2 12 21 2
2
Обратите внимание на низкое ограничение по времени. Решения на языке Python стоит засылать под PyPy 3-64.
Приветствуем начинающих воров! Сегодня вам предстоит ограбить кабинет номер $$$25$$$. В снаряжении мы вам дадим лишь небольшой рюкзак, потому что ценного в месте назначения не сильно много. Однако даже такие вещи могут пригодиться Штабу! Да, рюкзак, конечно, староват, но может вместить много полезного и нужного Штабу! Периодически вам будут поступать запросы от базы. Запросы могут быть таковыми:
В первой строке вводятся два числа $$$q$$$ и $$$g$$$ ($$$1 \le q \le 10^4$$$, $$$0 \le g \le 10$$$) — количество запросов от базы и номер группы тестов.
В следующих $$$q$$$ строках вводится запрос в соответствующем формате:
Для каждого запроса типа ? от базы выведите максимальную стоимость слитков, которую можно оставить.
| № | Доп. ограничения | Баллы | Необх. группы | Комментарий | |
| $$$q$$$ | $$$W$$$ | ||||
| $$$0$$$ | — | — | — | — | Тесты из условия |
| $$$1$$$ | $$$q \le 16$$$ | — | $$$10$$$ | $$$0$$$ | — |
| $$$2$$$ | $$$q \le 32$$$ | — | $$$12$$$ | $$$0-1$$$ | — |
| $$$3$$$ | $$$q \le 300$$$ | $$$W \le 200$$$ | $$$7$$$ | — | — |
| $$$4$$$ | — | — | $$$7$$$ | — | Все запросы типа $$$1$$$ и $$$2$$$ идут до всех запросов типа $$$3$$$ |
| $$$5$$$ | — | — | $$$8$$$ | $$$4$$$ | Все запросы типа $$$2$$$ идут до всех запросов типа $$$3$$$ |
| $$$6$$$ | — | — | $$$11$$$ | $$$4$$$ | Все запросы типа $$$1$$$ идут до всех запросов типа $$$3$$$ |
| $$$7$$$ | — | — | $$$9$$$ | — | Все ценности на удаление идут в обратном порядке, что на добавление |
| $$$8$$$ | — | — | $$$12$$$ | — | Все ценности на удаление идут в том же порядке, что и на добавление |
| $$$9$$$ | $$$q \le 2000$$$ | — | $$$8$$$ | $$$0-3$$$ | — |
| $$$10$$$ | — | — | $$$16$$$ | $$$0-9$$$ | — |
10 0+ 5+ 6+ 1+ 2- 2? 12? 7+ 2- 5? 10
12 7 9
14 0+ 1+ 1+ 1? 5? 4? 3? 2+ 2+ 2? 100- 1? 100- 1? 100
3 3 3 2 7 6 5
Марк откопал где-то у себя на чердаке старый автомат с двумя кнопками, с которым он играл еще в детстве. Игрушка прилично проржавела, но свой функционал продолжает выполнять. При нажатии на первую кнопку на экране появляется один $$$0$$$, а при нажатии на другую, то ли из-за старости, то ли из-за неисправности, автомат выводит сразу $$$k$$$ единиц.
Марку стало интересно, сколько различных строк длины от $$$\ell$$$ до $$$r$$$ можно получить, если автомат при нажатии на вторую кнопку показывает $$$k$$$ единиц. Но так как автомат старый, а интерес у Марка большой, вам предстоит ответить на $$$q$$$ запросов вместо автомата.
Так как ответ на любой запрос Марка может быть очень большим, посчитайте его по модулю $$$998244353$$$
В первой строке вам даны $$$2$$$ целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n, q \le 2 \cdot 10^5$$$) — ограничение на максимальную длину строки и количество запросов.
В следующих $$$q$$$ строках даны три целых числа $$$\ell_i, \ r_i, \ k_i$$$ ($$$1 \le \ell_i \le r_i \le n, 1 \le k \le n$$$) — диапазон длин и количество единиц, которое печатает автомат.
На каждый запрос выведите количество строк, которые может автомат напечатать по модулю $$$998244353$$$.
| № | Доп. ограничения | Баллы | Необх. группы | Комментарий | ||
| $$$n$$$ | $$$q$$$ | $$$k$$$ | ||||
| $$$0$$$ | — | — | — | — | — | Тесты из условия |
| $$$1$$$ | $$$n \le 15$$$ | $$$q \le 15$$$ | — | $$$7$$$ | $$$0$$$ | — |
| $$$2$$$ | $$$n \le 15$$$ | — | — | $$$9$$$ | $$$0 - 1$$$ | — |
| $$$3$$$ | $$$n \le 5000$$$ | $$$q \le 5000$$$ | — | $$$11$$$ | $$$0 -1$$$ | — |
| $$$4$$$ | $$$n \le 5000$$$ | — | — | $$$8$$$ | $$$0-3$$$ | — |
| $$$5$$$ | — | — | $$$k \le 20$$$ | $$$9$$$ | $$$0-2$$$ | — |
| $$$6$$$ | — | — | — | $$$12$$$ | — | $$$\ell_i = r_i = n$$$ |
| $$$7$$$ | — | — | $$$20 \cdot k \ge n$$$ | $$$13$$$ | — | — |
| $$$8$$$ | $$$n \le 50000$$$ | $$$q \le 50000$$$ | — | $$$21$$$ | $$$0, 1, 3$$$ | — |
| $$$9$$$ | — | — | — | $$$10$$$ | $$$0-8$$$ | — |
8 61 1 14 8 21 8 31 8 14 6 24 6 4
2 81 39 510 26 9
С незапамятных времен в прекрасный город $$$\mathbb{S}$$$ ездит делегация из нашего лицея для участия в одной небезызвестной олимпиаде. Давайте погрузимся в тот год, когда команда нашей школы впервые приехала в этот город. Тогда инфраструктура была не так развита, на улицах лежала интеллигенция, между частями города переправлялись на лодках. Однако путешествовать на лодках удовольствие не из дешевых, поэтому местным правительством было принято учредить постройку мостов между островами-частями города.
Так как построить мост так, чтобы он стоял навека, довольно сложно, мосты в городе $$$\mathbb{S}$$$ строят каждый год. В год номер $$$i$$$ с первого прибытия учеников лицея в данный город строится новый мост между островами $$$u_i$$$ и $$$v_i$$$. Некоторые мосты настолько производят впечатление, что они называются важными. Важным считается такой мост $$$v_i\leftrightarrow u_i$$$, что острова $$$u_i$$$ и $$$v_i$$$ станут несвязными при его удалении; иными словами, невозможно по любым мостам добраться от острова номер $$$u_i$$$ до $$$v_i$$$, не используя прямой мост между ними.
Так как со временем строятся все более величественные и красивые мосты, а старые неизбежно перестают становиться важными, правительству города $$$\mathbb{S}$$$ стало интересно, сколько лет тот или иной мост был важным. Так как правительство города $$$\mathbb{S}$$$ занимается в большинстве своем бюрократическими вопросами, выполнить эту задачу предстоит вам. Для каждого моста выведите количество лет, которое он будет важным, или $$$-1$$$, если он все равно останется таковым.
В первой строке входных данных вводятся два целых числа $$$n$$$, $$$m$$$ ($$$1 \le n,m \le 5 \cdot 10^5$$$), количество островов в городе $$$\mathbb{S}$$$ и количество лет, в течение которых строят мосты.
В следующих $$$m$$$ строках вводится по два целых числа $$$v_i, u_i$$$ ($$$1 \le u_i, v_i \le n$$$, $$$u_i \neq v_i$$$), номера островов, которые связывают в $$$i$$$-й год.
Гарантируется, что после постройки всех мостов от каждого острова можно добраться до любого другого. Также любые два острова в любой момент времени на прямую соединяет не более чем один мост.
Для каждого из $$$m$$$ мостов в новой строчке выведите, сколько лет очередной мост являлся важным. Если он в итоге остался важным, выведите «$$$-1$$$» без кавычек.
| № | Доп. ограничения | Баллы | Необх. группы | Комментарий | |
| $$$n$$$ | $$$m$$$ | ||||
| $$$0$$$ | — | — | — | — | Тесты из условия |
| $$$1$$$ | $$$m = n - 1$$$ | $$$7$$$ | — | — | |
| $$$2$$$ | $$$n \le 300$$$ | $$$m \le 300$$$ | $$$20$$$ | $$$0$$$ | — |
| $$$3$$$ | $$$n \le 1000$$$ | $$$m \le 1000$$$ | $$$16$$$ | $$$0,2$$$ | — |
| $$$4$$$ | $$$n \le 5000$$$ | — | $$$27$$$ | $$$0,2,3$$$ | — |
| $$$5$$$ | $$$n \le 10^5$$$ | $$$m \le 10^5$$$ | $$$18$$$ | $$$0,2,3$$$ | — |
| $$$6$$$ | — | — | $$$12$$$ | $$$0-5$$$ | — |
5 54 51 23 42 31 4
-1 3 2 1 0
2 11 2
-1
Правильная скобочная последовательность это строка, которая состоит только из символов «(» и «)», из которой возможно получить корректное арифметическое выражение, вставляя символы «+» и «1». Например, «», «(())» и «()()» являются правильными, а «)(» и «(()» не являются правильными скобочными последовательностями. Просто же скобочной последовательностью называется строка из символов «(» и «)».
Назовём правильностью скобочной последовательности максимальную длину её правильной скобочной подпоследовательности. Например, возьмем строку «()())((())()». Для неё правильными подпоследовательностями будут, к примеру, следующие: «$$$\color{red}{\underline{\color{red}{\text{()}}}}$$$())((())()», «$$$\color{red}{\underline{\color{red}{\text{(}}}}$$$)$$$\color{red}{\underline{\color{red}{\text{(}}}}$$$))((($$$\color{red}{\underline{\color{red}{\text{))}}}}$$$()», «$$$\color{red}{\underline{\color{red}{\text{()()}}}}$$$)$$$\color{red}{\underline{\color{red}{\text{((())}}}}$$$($$$\color{red}{\underline{\color{red}{\text{)}}}}$$$», а также другие (но поля условия слишком малы, чтобы их всех перечислить). Как видно, подпоследовательностью является наша последовательность, из которой удалили ноль или больше элементов, а порядок оставшихся не поменялся. Для данной последовательности правильность будет равна $$$10$$$ (последняя из приведённых подпоследовательностей имеет такую длину).
Дано $$$n$$$ изначально пустых скобочных последовательностей. Приходят $$$q$$$ запросов двух видов:
В первой строке входных данных вводится два числа $$$n$$$, $$$q$$$ ($$$1 \le n \le 5 \cdot 10^5$$$, $$$1 \le q \le 5 \cdot 10^5$$$) — количество пустых скобочных последовательностей и количество запросов.
В следующих $$$q$$$ строках вводятся числа согласно формату:
Для каждого запроса второго типа выведите сумму правильностей последовательностей на соответствующем отрезке.
| № | Доп. ограничения | Баллы | Необх. группы | Комментарий | |
| $$$n$$$ | $$$q$$$ | ||||
| $$$0$$$ | — | — | — | — | Тесты из условия |
| $$$1$$$ | $$$n=1$$$ | — | $$$6$$$ | — | — |
| $$$2$$$ | — | — | $$$15$$$ | — | $$$\ell_i = r_i$$$ в запросах первого типа |
| $$$3$$$ | — | — | $$$13$$$ | — | Баланс$$$^{\text{∗}}$$$ всех скобочных последовательностей не падает ниже $$$0$$$ |
| $$$4$$$ | $$$n \le 10^4 $$$ | $$$q \le 10^4 $$$ | $$$7$$$ | — | — |
| $$$5$$$ | $$$n \le 5 \cdot 10^4 $$$ | $$$q \le 5 \cdot 10^4 $$$ | $$$5$$$ | $$$4$$$ | — |
| $$$6$$$ | $$$n \le 10^5 $$$ | $$$q \le 10^5 $$$ | $$$14$$$ | $$$5$$$ | — |
| $$$7$$$ | $$$n \le 2 \cdot 10^5 $$$ | $$$q \le 2 \cdot 10^5 $$$ | $$$10$$$ | $$$6$$$ | — |
| $$$8$$$ | $$$n \le 3 \cdot 10^5 $$$ | $$$q \le 3 \cdot 10^5 $$$ | $$$8$$$ | $$$7$$$ | — |
| $$$9$$$ | $$$n \le 4 \cdot 10^5 $$$ | $$$q \le 4 \cdot 10^5 $$$ | $$$8$$$ | $$$8$$$ | — |
| $$$10$$$ | — | — | $$$14$$$ | $$$0-9$$$ | — |
$$$^{\text{∗}}$$$Балансом скобочной последовательности считается количество открывающих $$$-$$$ количество закрывающих скобок.
1 111 1 1 12 1 11 1 1 -12 1 11 1 1 11 1 1 -21 1 1 31 1 1 -21 1 1 11 1 1 -12 1 1
0 2 10
Запросы в примере образуют строку из пояснения правильности.