У Алсу есть перестановка $$$p$$$ целых чисел от $$$1$$$ до $$$n$$$. Она хочет разбить $$$p$$$ на две непересекающихся возрастающих подпоследовательности (не обязательно подряд идущих элементов) такие, что разница между длинами этих подпоследовательностей была бы максимально возможной. Заметим, что каждый элемент должен принадлежать хотя бы одной подпоследовательности. Пустая подпоследовательность тоже допустима. Помогите Алсу это сделать.
В первой строке находится единственное целое число $$$n$$$ ($$$1 \leq n \leq 5 \cdot 10^5$$$), количество элементов в перестановке. Вторая строка содержит $$$n$$$ целых чисел $$$p_i$$$ ($$$1 \leq p_i \leq n$$$), где $$$i$$$-е из них число равно $$$i$$$-му элементу перестановки. Гарантируется, что каждое число из множества $$$\{1, \ldots, n\}$$$ встречается среди $$$p_i$$$ ровно один раз.
Выведите единственное целое число, максимальную разность между длинами подпоследовательностей. Если невозможно разбить перестановку на две непересекающиеся подпоследовательности, то нужно вывести $$$-1$$$.
2 2 1
0
4 4 2 3 1
-1
10 2 4 5 1 6 3 7 8 9 10
6
11 1 2 3 4 5 6 7 8 9 10 11
11
У Булата есть два целых числа $$$n$$$ и $$$k$$$. Он хочет определить, существует ли массив $$$a_0$$$, $$$a_1$$$, $$$\ldots$$$, $$$a_{n-1}$$$ со следующими свойствами:
Даны два разделенные пробелом целых числа $$$n$$$ и $$$k$$$, длина массива и размер модуля ($$$2 \leq n \leq 10^9$$$, $$$1 \leq k \leq 10^9$$$).
Если такой массив существует, то выведете «Yes», если не существует, то «No» (ответ нужно вывести без кавычек).
4 2
Yes
4 4
No
У Алсу есть неориентированный граф с $$$n$$$ вершинами и $$$m$$$ рёбрами. Вершины пронумерованы целыми числами от $$$1$$$ до $$$n$$$. В каждой вершине записано число. В вершине с индексом $$$v$$$ записано число $$$c_v$$$.
Алсу называет прогулкой между вершинами $$$v_1$$$ и $$$v_k$$$ последовательность вершин $$$v_1$$$, $$$v_2$$$, $$$\ldots$$$, $$$v_k$$$ такую, что вершины $$$v_i$$$ и $$$v_{i+1}$$$ связаны ребром для всех $$$1 \leq i \leq k-1$$$. Заметим, что одна и та же вершина и даже одно и то же ребро может встречаться в прогулке несколько раз.
Алсу называет медианой $$$k$$$ чисел $$$\left\lfloor\frac{k}{2}+1 \right\rfloor$$$-е по величине число ($$$1$$$-е по величине число наименьшее). Скобки $$$\lfloor \rfloor$$$ означают округление вниз до ближайшего целого.
Алсу называет медианой прогулки значение, которое равно медиане всех чисел, написанных в вершинах, встречающихся в прогулке. Заметим, что если длина прогулки $$$k$$$, то надо рассматривать именно $$$k$$$ чисел (т.е. число, записанное на какой-то вершине, необходимо рассматривать столько раз, сколько эта вершина была посещена во время прогулки).
Помогите Алсу найти минимально возможное число среди медиан всех прогулок от вершины $$$1$$$ до вершины $$$n$$$.
В первой строке находится два разделенных пробелом целых числа $$$n$$$ ($$$2 \leq n \leq 10^5$$$) b $$$m$$$ ($$$0 \leq m \leq 2 \cdot 10^5$$$), количество вершин и ребер графа. Вторая строка содержит $$$n$$$ целых чисел $$$c_1$$$, $$$\ldots$$$, $$$c_n$$$ ($$$1 \leq c_i \leq 10^9$$$). Следующие $$$m$$$ строк содержат описание ребер. $$$i$$$-я строка содержит два числа $$$a_i$$$ и $$$b_i$$$ ($$$1 \leq a_i, b_i \leq n$$$), номер двух концов $$$i$$$-о ребра. Граф может содержать кратные ребра и петли.
Выведите единственное целое число, минимально возможное значение среди медиан всех прогулок от вершины $$$1$$$ до вершины $$$n$$$. Если между вершинами $$$1$$$ и $$$n$$$ нет пути, то выведите $$$-1$$$.
4 3 4 1 3 2 1 2 2 3 3 4
3
3 3 1 2 3 1 2 2 1 3 3
-1
У Булата есть строка $$$s$$$ длины $$$n$$$, которая содержит только строчные буквы английского алфавита (в нижнем регистре). Назовем последовательность букв словом, если она содержит хотя бы одну гласную и хотя бы одну согласную. На какое максимальное число слов Булат может разделить имеющуюся у него строку?
В этой задаче гласными считаются буквы a, i, o, u, e, y, а все остальные согласными.
Первая строка содержит единственное целое число $$$n$$$ ($$$1 \leq n \leq 10^5$$$), длину строки. Вторая строка содержит строку $$$s$$$, которая содержит только строчные буквы английского алфавита (в нижнем регистре).
Выведите единственное целое число, максимальное число слов, на которое можно разбить строку. Если строку невозможно разбить нужным образом, то в этом случае выведите $$$0$$$.
13brownfoxjumps
3
4iota
1
3you
0
Булату приснилось, что он работает мороженщиком. Он продаёт порции мороженого, заполняя рожок в форме конуса до некоторого уровня, и кладет поверх него два ароматных шарика мороженого одинакового размера. Он очень щедрый и хочет класть шарики как можно большего размера. Оба шарика должны касаться основной порции мороженого. Шарики могут соприкасаться, но не могут пересекаться. Шарики могут прикасаться к рожку, но не пересекаться с ним. Какой максимальный возможный радиус шариков?
Во сне Булат живет в двухмерном пространстве. Поэтому рожок на самом деле представляет собой равнобедренный треугольник, а шарики — не сферы, а круги.
Даны
Входные данные содержат информацию о многих случаях, когда Булат во сне видел себя мороженщиком. Выведите ответ для каждого из этих случаев.
Первая строка содержит единственное целое число $$$t$$$, количество снов ($$$1 \leq t \leq 10^4$$$). Каждая из следующих $$$t$$$ строк содержит три разделенных пробелами целых числа $$$h$$$, $$$\ell$$$, $$$w$$$ ($$$1 \leq h, \ell, w \leq 10^9$$$, $$$h \gt \ell$$$), описание одного сна.
Для каждого из снов выведите по одному действительному числу — максимальный радиус шариков. Каждое число должно быть в отдельной строке. Числа должны быть выведены с абсолютной или относительной погрешностью $$$10^{-6}$$$.
110 8 8
1.908131846
У Алсу есть полоска бумаги, которая состоит из $$$n$$$ последовательных квадратных клеточек. Клеточки пронумерованы слева направо от $$$1$$$ до $$$n$$$. В каждой клеточке записано одно целое число, которое может принимать значение $$$0$$$, $$$1$$$ или $$$2$$$. Обозначим число в $$$i$$$-й ячейке за $$$a_i$$$. Алсу может покрасить в черный любое количество левых или правых границ этих клеточек (в общем у ячеек $$$n+1$$$ границ). Можно ли покрасить границы клеток так, чтобы количество покрашенных границ у $$$i$$$ клетки равнялось числу $$$a_i$$$?
Например, если в клетках написаны числа $$$1~2~1~0~1~2$$$, то можно покрасить границы следующим образом:
Первая строка содержит единственное целое число $$$n$$$, число клеток ($$$1 \leq n \leq 10^5$$$). Следующая строка содержит $$$n$$$ разделенных пробелами целых чисел $$$a_1$$$, $$$\ldots$$$, $$$a_n$$$ ($$$0 \leq a_i \leq 2$$$), количество покрашенных границ, которое должно быть у ячеек $$$1$$$, $$$\ldots$$$, $$$n$$$.
Если необходимое возможно сделать, выведите «Yes» в единственной строки. Если невозможно, выведите «No» (ответ нужно вывести без кавычек).
61 2 1 0 1 2
Yes
22 0
No
У Булата есть $$$n$$$ строк, и ему надо ответить на $$$q$$$ запросов. Каждый запрос состоит из двух строк $$$l_i$$$ и $$$r_i$$$. Для такого запроса ему нужно подсчитать количество строк из заданного набора таких, что либо $$$l_i$$$ является её префиксом, либо $$$r_i$$$ является её суффиксом, либо выполняются оба условия (таким образом, строка с префиксом $$$l_i$$$ и суффиксом $$$r_i$$$ одновременно считается один раз).
Помогите Булату ответить на запросы.
Первая строка содержит единственное целое число $$$n$$$ ($$$1 \leq n \leq 10^5$$$), количество строк. Далее даны сами $$$n$$$ строк (каждая дана в отдельной строке). Следующая строка содержит единственное целое число $$$q$$$ ($$$1 \leq q \leq 10^5$$$), количество запросов. Далее идут $$$q$$$ строк, описывающие запросы. $$$i$$$-я строка содержит $$$l_i$$$ и $$$r_i$$$ разделенные пробелом. Ни одна из строк во вводе не пуста.
Суммарная длина всех строк (включая запросы) не превышает $$$10^5$$$. Все строки состоят только из строчных букв английского алфавита.
Для каждого из запросов в отдельной строке выведите по одному целому числу, количеству строк, содержащих либо необходимый префикс, либо суффикс, либо оба одновременно.
3 bat eca baca 1 ba ca
3
У Алсу есть дерево с $$$n$$$ вершинами. У каждой вершины $$$v$$$ есть по два значения $$$a_v$$$ и $$$b_v$$$. Алсу хочет обработать $$$q$$$ запросов следующих типов:
Изначально создать массив $$$\text{used}[1\ldots n]$$$ и заполнить его значениями false. Затем запустить функцию $$$\text{DFS}(v)$$$:
DFS(v):
{
used[v] = true;
for u from 1 to n do
{
if (u и v связаны ребром)
and (used[u] == false)
and (a[v] + b[u] == a[u] + b[v]) then
{
DFS(u);
}
}
a[v] = b[v];
}
Помогите Алсу выполнить эти запросы.
Первая строка содержит два целых числа $$$1 \leq n, q \leq 5 \cdot 10^5 $$$. Вторая строка содержит $$$n$$$ целых чисел, где $$$i$$$-е из них — это начальное значение $$$a_i$$$ ($$$0 \leq a_i \leq 5\cdot10^5$$$). Третья строка содержит $$$n$$$ целых чисел, где $$$i$$$-е из них — это значение $$$b_i$$$ ($$$0 \leq b_i \leq 5\cdot10^5$$$).
Каждая из следующих $$$n-1$$$ строк описывает ребро дерева. $$$i$$$-я из них содержит два целых числа $$$u_i$$$ и $$$v_i$$$ ($$$1 \leq u_i, v_i \leq n$$$, $$$u_i \neq v_i$$$), индексы вершин, связанных $$$i$$$-м ребром. Гарантируется, что заданный граф является деревом.
Следующие $$$q$$$ строк содержат описание запросов. $$$i$$$-й запрос начинается с целого числа $$$t_i$$$ ($$$1 \leq t_i \leq 3$$$), которое обозначает тип запроса. Если $$$t_i = 1$$$, то следуют два целых числа $$$v_i$$$ и $$$x_i$$$ ($$$1 \leq v_i \leq n$$$, $$$0 \leq x_i \leq 5\cdot10^5$$$). Иначе дано только целое число $$$v_i$$$.
Для каждого из запросов второго типа вывести по одному числу в отдельной строке, значение $$$a_v$$$.
2 6 20 102 10 90 1 2 2 1 2 2 1 2 100 3 1 2 1 2 2
20 102 10 90
6 6 20 30 30 60 60 70 10 20 30 40 50 60 1 2 2 4 2 5 1 3 3 6 1 3 40 3 1 2 1 2 6 2 2 2 4
10 60 20 60
У Булата есть мультимножество целых чисел, которое изначально пусто. Ему нужно обработать $$$q$$$ запросов. Запросы приходят либо на добавление, либо на удаление одного целого числа из мультимножества. После каждого запроса ему необходимо вычислить максимальный возможный МEX мультимножества, который он может получить, если может применять следующие операции. С помощью одной операции можно взять элемент $$$x$$$, который встречается в мультимножестве как минимум дважды, удалить один из них и добавить либо $$$x-1$$$, либо $$$x+1$$$. Эти операции не влияют на мультимножество для следующего запроса.
MEX — это операция, которая означает «минимальный отсутствующий»: MEX мультимножества чисел равен наименьшему неотрицательному целому числу, которого нет в мультимножестве. Например, $$$\text{mex}(\{0,1,1,2,4,4\})=3$$$. Однако, в данной задаче с помощью разрешенных операций мультимножество может быть преобразовано в $$$\{0,1,2,3,4,5\}$$$, у которого MEX уже равен $$$6$$$.
Помогите Булату обработать запросы.
Первая строка содержит единственное целое число $$$q$$$ ($$$1 \leq q \leq 10^6$$$), количество запросов. Следующие $$$q$$$ строк описывают запросы. $$$i$$$-я из них содержит два целых числа $$$t_i$$$, $$$a_i$$$ ($$$1 \leq t_i \leq 2$$$, $$$0 \leq a_i \leq 10^6$$$):
После каждого из запросов выведите в отдельную строку единственное число, максимально возможное значение MEX мультимножества, если преобразовать его с помощью разрешенных операций.
9 1 0 1 1 1 1 1 2 1 4 1 4 2 1 2 2 1 4
1 2 3 4 5 6 5 2 5
У Алсу есть два массива целых чисел $$$a$$$ и $$$b$$$. Массив $$$a$$$ длины $$$n$$$, а массив $$$b$$$ длины $$$m$$$. Она хочет найти любую матрицу $$$C$$$ размера $$$n \times m$$$ такую, чтобы она удовлетворяла всем указанным условиям:
MEX — это операция, которая означает «минимальный отсутствующий»: MEX множества чисел равен наименьшему неотрицательному целому числу, которого нет в множестве. Например, $$$\text{mex}(\{0,1,2,4\})=3$$$.
Помогите Алсу построить такую матрицу.
Первая строка содержит два положительных целых числа $$$n$$$ и $$$m$$$, длины массивов $$$a$$$ и $$$b$$$, соответственно ($$$1 \leq n \cdot m \leq 10^5$$$). Вторая строка содержит $$$n$$$ целых чисел $$$a_1$$$, $$$\ldots$$$, $$$a_n$$$ ($$$0 \leq a_i \leq 10^9$$$). Третья строка содержит $$$m$$$ целых чисел $$$b_1$$$, $$$\ldots$$$, $$$b_m$$$ ($$$0 \leq b_i \leq 10^9$$$).
Если такая матрица существует, то выведите «Yes» в первой строке, иначе выведите «No» (ответ нужно вывести без кавычек).
В случае, если матрица существует, необходимо вывести саму матрицу. Для этого выведите $$$n$$$ строк по $$$m$$$ целых чисел, где $$$j$$$-е число $$$i$$$-й строки — это элемент $$$C_{i,j}$$$. Каждое из целых чисел из интервала $$$[0,n\cdot m -1]$$$ должно встречаться в $$$C$$$ ровно один раз. Если существует несколько таких матриц, то выведите любую из них.
2 2 2 0 1 0
Yes 0 1 3 2
2 2 1 1 1 1
No
У Булата есть двоичная последовательность из $$$n$$$ бит $$$a_1$$$, $$$\ldots$$$, $$$a_n$$$ (каждый бит может быть $$$0$$$ или $$$1$$$). Изначально все биты равны $$$0$$$. У Булата также есть $$$m$$$ пар индексов $$$(i,j)$$$ — это допустимые операции, которые можно применить к последовательности. Если он применяет операцию $$$(i,j)$$$, то $$$a_i$$$ меняется на $$$1-a_i$$$, а $$$a_j$$$ меняется на $$$1-a_j$$$.
Кроме того, Булат хочет получить последовательность из $$$n$$$ битов $$$b_1$$$, $$$\ldots$$$, $$$b_n$$$. Можно ли получить $$$b$$$ из $$$a$$$ применяя только допустимые операции (можно также не изменять массив совсем). Каждая из операций может быть применена ноль и или несколько раз, и операции могут быть применены в любом порядке.
Первая строка содержит единственное целое число, значение $$$n$$$ ($$$2 \leq n \leq 10^5$$$). Вторая строка содержит $$$n$$$ бит $$$b_1$$$, $$$\ldots$$$, $$$b_n$$$ ($$$0 \leq b_i \leq 1$$$).
Следующая строка содержит единственное целое число, значение $$$m$$$ ($$$1 \leq m \leq 10^5$$$). Следующие $$$m$$$ строк содержат по два числа $$$l_i$$$ и $$$r_i$$$, индексы для операции ($$$1 \leq l_i \lt r_i \leq n$$$). Не существует двух одинаковых операций.
Если это возможно, то выведете «Yes», если нет, то «No» (ответ нужно вывести без кавычек).
51 1 0 1 131 33 42 5
Yes
20 111 2
No
Булат отвечает за хранилище, которое образовано двумя бесконечными диагональными стенами, соединенными в одной точке внизу. В хранилище есть $$$n$$$ квадратных ящиков одинакового размера. Ящики естественно притягиваются силой тяжести. Например, расположение ящиков может быть следующим:
Затем нижний ящик убирается из хранилища. Другие ящики начинают падать в освободившееся пространство, пока снова не будет достигнуто стабильное расположение. Ящики могут падать по-разному, в зависимости от того, заполняет ли пустой слот левый или правый верхний ящик. Например, на предыдущем рисунке есть 3 разных варианта:
Помогите Булату найти общее количество различных возможных сценариев по модулю $$$10^9+7$$$.
Первая строка содержит единственное целое число, количество ящиков $$$n$$$ ($$$1 \leq n \leq 10^5$$$). Следующие $$$n$$$ строк описывают ящики, $$$i$$$-я из них содержит два целых числа $$$x_i$$$ и $$$y_i$$$ ($$$1 \leq x_i, y_i \leq n$$$). Это координаты ящика в следующей системе координат: ряды ящиков, перпендикулярных левой стене хранилища, пронумерованы целыми числами, начиная с $$$1$$$, и мы обозначим эту ось через $$$x$$$; ряды ящиков, перпендикулярных правой стене хранилища, пронумерованы целыми числами, начиная с $$$1$$$, и обозначим эту ось через $$$y$$$. Ящик с координатами $$$(x_i,y_i)$$$ расположен на пересечении $$$x_i$$$-й и $$$y_i$$$-й таких строк соответственно.
Гарантируется, что данное расположение ящиков стабильно.
Выведите единственное целое число — количество возможных сценариев падения ящиков по модулю $$$10^9+7$$$.
51 11 22 23 12 1
3
У Алсу есть бесконечная таблица $$$A$$$. Строки и столбцы в ней нумеруется целыми числами $$$0$$$, $$$1$$$, $$$2$$$, и т.д. Число в $$$i$$$-й строке и $$$j$$$-м столбце равно $$$A_{i,j} = 2^i 3^j$$$.
$$$$$$ \begin{array}{c||c|c|c|c|c} & 0 & 1 & 2 & 3 & \ldots \\ \hline\hline 0 & 1 & 3 & 9 & 27 & \ldots \\ \hline 1 & 2 & 6 & 18 & 54 & \ldots \\ \hline 2 & 4 & 12 & 36 & 108 & \ldots \\ \hline 3 & 8 & 24 & 72 & 216 & \ldots \\ \hline \vdots & \vdots & \vdots & \vdots & \vdots & \ddots \end{array} $$$$$$
Помогите Алсу обработать $$$q$$$ запросов вида $$$(i_1,i_2,j_1,j_2)$$$, где $$$i_1 \leq i_2$$$ и $$$j_1 \leq j_2$$$. Для каждого запроса вам нужно вычислить значение
$$$$$$\sum_{i=i_1}^{i_2} \sum_{j=j_1}^{j_2} A_{i,j}$$$$$$ по модулю $$$10^9+7$$$.
Первая строка содержит единственное целое число $$$q$$$, количество запросов ($$$1 \leq q \leq 10^4$$$). Далее идут описания самих запросов. $$$i$$$-я из следующих $$$q$$$ строк содержит четыре целых числа $$$i_1$$$, $$$i_2$$$, $$$j_1$$$, $$$j_2$$$, описание $$$i$$$-го запроса ($$$0 \leq i_1 \leq i_2 \leq 10^9$$$, $$$0 \leq j_1 \leq j_2 \leq 10^9$$$).
Для каждого из запросов в отдельной строке выведите соответствующую сумму по модулю $$$10^9+7$$$.
11 2 0 1
24