У Поликарпа есть три отрезка с целочисленными длинами $$$a$$$, $$$b$$$ и $$$c$$$.
Он хочет сделать из этих отрезков треугольник с положительной площадью, причем концы отрезков должны быть вершинами треугольника.
Поликарп может выполнять со своими отрезками следующую операцию неограниченное количество раз:
Обратите внимание, что после применения операции отрезок должен иметь положительную длину.
Перед вами стоит задача определить минимальное количество операций, которые необходимы, чтобы из измененных после операций отрезков $$$a$$$, $$$b$$$ и $$$c$$$ можно было сделать треугольник с положительной площадью, а концы отрезков были вершинами треугольника.
В первой строке следуют три целых числа $$$a$$$, $$$b$$$ и $$$c$$$ ($$$1 \le a, b, c \le 10^{6}$$$) — длины отрезков Поликарпа.
Выведите минимальное количество операций, которые нужно применить к отрезкам Поликарпа, чтобы из них можно было сделать треугольник с положительной площадью, а концы отрезков были вершинами треугольника.
3 2 6
2
250 100 200
0
13 111 57
42
В первом примере можно, например, в ходе первой операции увеличить длину первого отрезка на $$$1$$$, а в ходе второй операции уменьшить длину третьего отрезка на $$$1$$$. Таким образом, после двух операций длины отрезков станут равны $$$4$$$, $$$2$$$ и $$$5$$$. Из этих отрезков можно сделать треугольник, удовлетворяющий описанным условиям.
Во втором примере не нужно применять ни одной операции, так как из заданных отрезков можно сделать треугольник, удовлетворяющий всем описанным условиям.
Поликарп очень любит играть в баскетбол. На последней тренировке он сделал $$$n$$$ точных бросков. Поликарп запомнил для каждого броска расстояние до кольца, с которого бросок был сделан.
Теперь Поликарп хочет посчитать количество очков, которые он набрал на тренировке. Для этого ему нужно выбрать какое-то целое неотрицательное число $$$d$$$. Тогда за каждый точный бросок с расстояния строго меньшего, чем $$$d$$$, Поликарп запишет себе $$$2$$$ очка, а за каждый бросок с расстояния большего либо равного $$$d$$$, Поликарп запишет себе $$$3$$$ очка.
Перед вами стоит задача определить минимально возможное значение $$$d$$$, при котором количество очков Поликарпа на тренировке будет в точности равно числу $$$k$$$.
В первой строке следуют два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 1\,000$$$, $$$2n \le k \le 3n$$$) — количество точных бросков и необходимое количество очков.
Во второй строке следует последовательность целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^{9}$$$), где $$$a_i$$$ равно расстоянию, с которого был сделан $$$i$$$-й точный бросок. Гарантируется, что все числа в заданной последовательности различные.
Обратите внимание, что ограничения на входные данные таковы, что ответ всегда найдется.
Выведите одно целое неотрицательное число — минимально возможное значение $$$d$$$, при котором количество очков Поликарпа на тренировке будет в точности равно числу $$$k$$$.
3 720 10 30
21
5 154 8 7 3 5
0
10 2410 8 7 5 6 9 2 3 4 1
7
В первом примере $$$d$$$ должно быть равно $$$21$$$. Тогда за первые два броска Поликарп запишет себе по два очка, а за третий бросок — три очка. Таким образом, суммарно Поликарп наберет $$$2 + 2 + 3 = 7$$$ очков.
Во втором примере $$$n=5$$$, а $$$k=15$$$, поэтому за каждый бросок Поликарп должен записывать себе по три очка. Таким образом, минимально возможное целое неотрицательное значение $$$d$$$ равно $$$0$$$.
У Поликарпа есть две последовательности целых чисел $$$a$$$ и $$$b$$$. В каждой из этих последовательностей по $$$n$$$ элементов.
Поликарпу стало интересно, сколько существует различных целых чисел $$$x$$$ таких, что для всех $$$i$$$ от $$$1$$$ до $$$n$$$ верно, что $$$x$$$ находится между $$$a_i$$$ и $$$b_i$$$, то есть для всех $$$i$$$ от $$$1$$$ до $$$n$$$ выполняется хотя бы одно из двух условий:
Перед вами стоит задача помочь Поликарпу и найти количество различных целых чисел $$$x$$$, которые удовлетворяют всем описанным условиям.
В первой строке следует целое число $$$n$$$ ($$$1 \le n \le 200\,000$$$) — количество элементов в последовательностях $$$a$$$ и $$$b$$$.
Во второй строке следует последовательность целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^{9}$$$).
В третьей строке следует последовательность целых чисел $$$b_1, b_2, \dots, b_n$$$ ($$$1 \le b_i \le 10^{9}$$$).
Выведите количество целых чисел $$$x$$$, которые удовлетворяют всем описанным условиям.
23 67 2
4
45 5 5 55 5 5 5
1
45 5 5 65 5 5 6
0
В первом примере подходят $$$x = 3$$$, $$$x = 4$$$, $$$x = 5$$$ и $$$x = 6$$$. Таким образом, нужно вывести $$$4$$$, так как ровно четыре целых числа удовлетворяют всем условиям.
Во втором примере подходит только $$$x = 5$$$.
В третьем примере не подходит ни одно целое число.
Перестановкой длины $$$n$$$ называется массив из $$$n$$$ целых чисел, в котором каждое целое число от $$$1$$$ до $$$n$$$ встречается ровно один раз.
Инверсией в перестановке $$$p$$$ назовем такую пару элементов $$$p_i$$$ и $$$p_j$$$, что $$$i \lt j$$$ и $$$p_i \gt p_j$$$. В таком случае эти два элемента участвуют в инверсии.
Вам даны два целых числа $$$n$$$ и $$$k$$$. Постройте такую перестановку длины $$$n$$$, в которой ровно $$$k$$$ элементов, участвующих в инверсиях, или сообщите, что такой перестановки не существует.
В первой строке задано одно целое число $$$n$$$ ($$$2 \le n \le 100$$$).
Во второй строке задано одно целое число $$$k$$$ ($$$0 \le k \le n$$$).
Если перестановки, удовлетворяющей условию задачи, не существует, выведите $$$0$$$.
Иначе выведите $$$n$$$ различных целых чисел от $$$1$$$ до $$$n$$$ — искомую перестановку. Если таких перестановок несколько, вы можете вывести любую из них.
54
2 1 4 3 5
77
6 7 3 1 4 5 2
131
0
40
1 2 3 4
Поликарп купил волшебную книгу, состоящую из $$$n$$$ страниц. Все страницы пронумерованы по очереди целыми числами от $$$1$$$ до $$$n$$$. Поликарп хочет с помощью этой книги наколдовать себе пятерку в четверти по информатике.
Чтобы произошло волшебство, Поликарп должен выбрать страницу $$$x$$$ и прочитать все страницы книги, начиная со страницы $$$x$$$ и заканчивая последней страницей с номером $$$n$$$.
Также Поликарп знает, что цифры $$$a$$$ и $$$b$$$ являются волшебными. Если окажется так, что среди прочитанных Поликарпом страниц ровно $$$k$$$ номеров страниц заканчиваются на цифры $$$a$$$ или $$$b$$$, то произойдет чудо, и Поликарп получит пятерку в четверти по информатике.
Так как Поликарп очень ленивый, он не хочет читать очень много страниц, поэтому среди всех подходящих страниц, с которых Поликарп может начать читать книгу, он выберет страницу с наибольшим номером.
Перед вами стоит задача определить наибольший номер страницы $$$x$$$, с которой Поликарп должен начать читать книгу, чтобы ровно $$$k$$$ номеров страниц, начиная со страницы $$$x$$$ и заканчивая страницей $$$n$$$, заканчивались на цифры $$$a$$$ или $$$b$$$.
В первой строке следуют четыре целых числа $$$n$$$, $$$k$$$, $$$a$$$ и $$$b$$$ ($$$1 \le k \le n \le 10^{12}$$$, $$$0 \le a, b \le 9$$$, $$$a \neq b$$$) — количество страниц в книге, необходимое количество страниц, которые должны заканчиваться на цифры $$$a$$$ или $$$b$$$, а также сами цифры $$$a$$$ и $$$b$$$.
Следует обратить внимание, что входные и выходные данные в этой задаче могут не помещаться в стандартный $$$32$$$-битный тип данных. Необходимо использовать $$$64$$$-битный тип данных (long long в С++, int64 в Паскале, long в Java).
Если Поликарп не сможет с помощью книги наколдовать себе пятерку в четверти по информатике, выведите $$$-1$$$.
В противном случае, выведите наибольший номер страницы $$$x$$$, с которой Поликарп должен начать читать книгу, чтобы произошло волшебство, и он получил пятерку в четверти по информатике.
29 3 8 0
18
20 5 4 7
-1
1000000000000 1234 5 6
999999993835
В первом примере Поликарп должен начать читать книгу со страницы $$$18$$$. Тогда ровно три номера прочитанных страниц будут заканчиваться на $$$8$$$ или $$$0$$$: $$$18$$$-я, $$$20$$$-я и $$$28$$$-я страницы.
Во втором примере в книге всего четыре страницы, чьи номера заканчиваются на $$$4$$$ или $$$7$$$: страницы $$$4$$$, $$$7$$$, $$$14$$$ и $$$17$$$. Так как $$$k = 5$$$, Поликарп не сможет наколдовать себе пятерку в четверти по информатике.
Поликарп приехал на склад с ящиками. Он выстроил все ящики в $$$n$$$ стопок, в каждой из стопок ящики стоят друг на друге.
После этого он захотел перераспределить ящики. Для этого он решил сделать еще $$$n - 1$$$ стопку, причем каждая новая стопка должна быть между двумя стопками, которые были изначально. При этом между каждой соседней парой изначальных стопок должна быть ровно одна новая. Каждая новая стопка изначально пустая, то есть в ней нет ни одного ящика.
Таким образом, слева и справа от изначальных стопок появится по одной новой стопке, за исключением самой левой изначальной стопки (у нее будет только одна новая стопка справа) и самой правой изначальной стопки (у нее будет только одна новая стопка слева).
Поликарп будет перераспределять ящики следующим образом. Он может брать ящики только из изначальных стопок и перемещать их только в новые соседние стопки с той, из которой он берет ящики.
Перед вами стоит задача определить, возможно ли перераспределить ящики таким образом, чтобы в каждой из $$$2\cdot n - 1$$$ стопок было одинаковое количество ящиков. Ящики запрещено выкидывать или добавлять, то есть Поликарп должен перераспределить именно те ящики, которые были в $$$n$$$ изначальных стопках.
В первой строке следует целое число $$$n$$$ ($$$2 \le n \le 200\,000$$$) — количество изначальных стопок.
Во второй строке следует последовательность целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 1\,000$$$), где $$$a_i$$$ равно количеству ящиков в $$$i$$$-й изначальной стопке.
Если невозможно перераспределить ящики описанным образом, выведите «NO» (без кавычек).
В противном случае, выведите «YES» (без кавычек).
37 13 5
YES
230 10
NO
68 16 13 18 12 10
YES
311 5 9
NO
В первом примере после добавления двух новых стопок, последовательность количества ящиков в стопках (обозначим ее как $$$a$$$) равна $$$[7, 0, 13, 0, 5]$$$. После этого можно взять два ящика из первой стопки и положить во вторую. После этого $$$a = [5, 2, 13, 0, 5]$$$. Затем можно взять $$$5$$$ ящиков из третьей стопки и положить в четвертую. После этого $$$a = [5, 2, 8, 5, 5]$$$. После этого можно взять $$$3$$$ ящика из третьей стопки и положить во вторую. После этого $$$a = [5, 5, 5, 5, 5]$$$. Таким образом, Поликарп может сделать количество ящиков во всех стопках одинаковым.
Во втором примере невозможно перераспределить ящики между тремя стопками так, чтобы во всех стопках было одинаковое количество ящиков.
У Поликарпа есть строка $$$s$$$ длины $$$n$$$, состоящая из строчных букв латинского алфавита.
Поликарп решил, что удалит из своей строки ровно $$$k$$$ букв. После удаления $$$k$$$ букв строка Поликарпа разделится на некоторое количество частей. Поликарп будет рассматривать только те части строки, в которых есть хотя бы одна буква, то есть пустые части рассматриваться не будут. Например, если $$$s = $$$ «abcdefghij» и Поликарп удалит первую, четвертую и шестую буквы, его строка разделится на три части «bc», «e» и «ghij».
Также Поликарп решил, что среди всех пар соседних букв он удалит не более одной буквы. Все $$$k$$$ удалений Поликарп произведет одновременно, то есть среди $$$k$$$ выбранных для удаления позиций не должно быть соседних позиций.
Поликарп хочет, чтобы все получившиеся части его строки были одинаковыми. Перед вами стоит задача определить, возможно ли удалить ровно $$$k$$$ букв из строки $$$s$$$, учитывая все описанные условия, так, чтобы желание Поликарпа исполнилось.
В первой строке следуют два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 200\,000$$$, $$$1 \le k \le \frac{n + 1}{2}$$$) — количество букв в строке Поликарпа и количество букв, которые нужно удалить.
Во второй строке следует строка $$$s$$$ длины $$$n$$$, состоящая из строчных букв латинского алфавита — строка Поликарпа.
Если невозможно удалить ровно $$$k$$$ букв из строки Поликарпа, учитывая описанные условия, так, чтобы все оставшиеся части строки были одинаковыми, выведите «NO» (без кавычек).
В противном случае, выведите «YES» (без кавычек).
3 2acm
YES
9 3abcabaabb
YES
7 1abacaba
YES
6 3vkoshp
NO
В первом примере нужно удалить первую и третью буквы. После этого получится только одна часть «c», поэтому нужно вывести «YES».
Во втором примере нужно удалить третью, шестую и девятую буквы. После этого строка разделится на три одинаковые части «ab».
В третьем примере можно, например, удалить четвертую букву. После этого строка разделится на две одинаковые части «aba».
В четвертом примере невозможно удалить буквы так, чтобы все получившиеся части были одинаковыми.
У Поликарпа есть строка $$$s$$$ длины $$$n$$$, состоящая из строчных букв латинского алфавита.
Поликарп может выполнять со своей строкой следующую операцию:
Например, если строка Поликарпа равна «cccrrrttt», то после применения одной операции строка станет равна «ccrrrttt», а если строка Поликарпа равна «aabbbcc», то после применения одной операции строка станет равна «aabbcc».
Перед вами стоит задача определить, как будет выглядеть строка Поликарпа, если к ней последовательно применить ровно $$$k$$$ описанных операций.
В первой строке следуют два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 200\,000$$$, $$$1 \le k \lt n$$$) — длина строки Поликарпа, а также количество операций, которые нужно последовательно к ней применить.
Во второй строке следует строка Поликарпа $$$s$$$ длины $$$n$$$, состоящая из строчных букв латинского алфавита.
Выведите строку Поликарпа после последовательного применения к ней $$$k$$$ описанных операций.
9 4aabbbbccc
abbcc
10 6abcdefghij
ghij
Рассмотрим подробнее первый пример:
Поликарп является тренером футбольного клуба в Берляндии.
За прошедший сезон его команда сыграла $$$n$$$ матчей, за которые набрала $$$p$$$ очков. Известно, что за один матч команда может получить следующее количество очков:
Поликарп не помнит точные результаты каждого из $$$n$$$ матчей его команды. Ему стало интересно, какое максимальное количество ничьих могло быть у его команды за прошедший сезон, если она набрала $$$p$$$ очков за $$$n$$$ матчей. Перед вами стоит задача помочь Поликарпу и определить максимальное количество ничьих.
В первой строке следуют три целых числа $$$n$$$, $$$p$$$ и $$$k$$$ ($$$1 \le n \le 10^{12}$$$, $$$0 \le p \le 10^{15}$$$, $$$2 \le k \le 1\,000$$$) — количество матчей, количество очков, которые набрала команда, а также количество очков, которые получает команда за победу в матче.
Следует обратить внимание, что входные и выходные данные в этой задаче могут не помещаться в стандартный $$$32$$$-битный тип данных. Необходимо использовать $$$64$$$-битный тип данных (long long в С++, int64 в Паскале, long в Java).
Если невозможно набрать за $$$n$$$ матчей $$$p$$$ очков, выведите $$$-1$$$.
В противном случае, выведите максимальное количество ничьих, которые могли быть у команда Поликарпа в прошедшем сезоне.
6 7 3
4
1 2 5
-1
1000000000000 1000000000000 1000
1000000000000
3 15 5
0
В первом примере команда Поликарпа могла выиграть один матч, сыграть в ничью в четырех матчах и проиграть один матч. В таком случае, команда набрала бы $$$1 \cdot 3 + 4 \cdot 1 + 1 \cdot 0 = 3 + 4 = 7$$$ очков. Таким образом, максимальное количество ничьих равно $$$4$$$.
Во втором примере невозможно за один матч набрать $$$2$$$ очка, так как в случае победы команда получает $$$5$$$ очков, в случае ничьи — $$$1$$$ очко, а в случае поражения — $$$0$$$ очков.
В третьем примере команда за $$$10^{12}$$$ матчей набрала $$$10^{12}$$$ очков, поэтому каждый матч мог завершиться в ничью.
В четвертом примере команда набрала максимально возможное количество очков за три матча, поэтому она не могла сыграть ни одного матча в ничью.
Поликарп вышел в финал телепередачи «Твоя игра».
В финале для Поликарпа подготовлены $$$n$$$ вопросов, пронумерованных целыми числами от $$$1$$$ до $$$n$$$, причем каждый вопрос имеет свою стоимость. Если Поликарп ответит на вопрос, то к его счету прибавится стоимость вопроса, а если Поликарп не ответит на вопрос, то из его счета вычтется стоимость вопроса. Изначально счет Поликарпа равен нулю.
По правилам финала сначала Поликарп должен удалить ровно $$$k$$$ вопросов, которые ему точно не будут заданы. Относительный порядок остальных вопросов останется без изменений.
В ходе финала вопросы будут задаваться Поликарпу по очереди. Поликарп для каждого вопроса может принять решение — попытаться ответить на него или пропустить текущий вопрос и перейти к следующему. При этом Поликарпу запрещено пропускать два и более вопросов подряд.
Поликарп перед началом финала узнал темы всех $$$n$$$ вопросов. Теперь он точно знает на какие вопросы он сможет ответить верно, а на какие не сможет.
Перед вами стоит задача определить максимальный счет, который может набрать Поликарп в конце финала, если вы можете помочь ему и подсказать, какие $$$k$$$ вопросов нужно удалить в начале финала и какие вопросы в ходе финала ему нужно пропустить.
В первой строке следуют два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 200\,000$$$, $$$1 \le k \le min(10, n - 1)$$$) — изначальное количество вопросов и количество вопросов, которые Поликарп должен удалить в начале финала.
Во второй строке следует последовательность целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$-10^{9} \le a_i \le 10^{9}$$$, $$$a_i \neq 0$$$), где $$$|a_i|$$$ равно стоимости $$$i$$$-го вопроса. Если $$$a_i \gt 0$$$, то Поликарп сможет ответить на $$$i$$$-й вопрос. Если $$$a_i \lt 0$$$, то Поликарп не сможет ответить на $$$i$$$-й вопрос.
Выведите максимальный счет, который может набрать Поликарп в конце финала. Обратите внимание, что ответ может быть отрицательным числом.
5 11 2 -4 3 2
8
10 24 3 -4 -2 -2 -2 3 -2 3 6
17
13 4-3 -2 -3 -3 -2 -4 -3 -2 -3 -3 -4 -3 -2
-9
В первом примере Поликарпу нужно удалить третий вопрос. Затем ему будут заданы четыре вопроса $$$[1, 2, 3, 2]$$$. Поликарпу не нужно пропускать ни одного вопроса, потому что он сможет ответить на все. Таким образом, его счет в конце финала будет равен $$$1 + 2 + 3 + 2 = 8$$$.
Во втором примере Поликарп может, например, удалить третий и пятый вопросы. Затем ему будут заданы восемь вопросов $$$[4, 3, -2, -2, 3, -2, 3, 6]$$$. Из них Поликарп может, например, пропустить третий и шестой вопросы. Таким образом, его счет в конце финала будет равен $$$4 + 3 + (-2) + 3 + 3 + 6 = 17$$$.
Поликарп отметил на координатной прямой $$$n$$$ точек с целочисленными координатами.
Он хочет отметить на координатной прямой еще одну точку, при этом суммарное расстояние от нее до всех остальных $$$n$$$ точек должно быть в точности равно $$$d$$$.
Перед вами стоит задача найти любую подходящую точку, которая удовлетворяет описанным условиям, либо сообщить, что такой точки не существует.
В первой строке следуют два целых числа $$$n$$$ и $$$d$$$ ($$$1 \le n \le 200\,000$$$, $$$0 \le d \le 10^{17}$$$) — количество точек, которые отметил Поликарп, а также необходимое суммарное расстояние от новой точки до всех остальных.
Во второй строке следует последовательность целых чисел $$$x_1, x_2, \dots, x_n$$$ ($$$0 \le x_i \le 10^{12}$$$), где $$$x_i$$$ равно координате $$$i$$$-й точки. Обратите внимание, что среди заданных точек могут быть точки с одинаковыми координатами.
Если невозможно добавить еще одну точку, чтобы суммарное расстояние от нее до всех остальных $$$n$$$ точек было в точности равно $$$d$$$, выведите «NO» (без кавычек).
В противном случае, в первую строку выведите «YES» (без кавычек). Во вторую строку выведите координату искомой точки. Если подходящих точек несколько, выведите координату любой из них. Обратите внимание, что координата искомой точки может быть отрицательной.
5 1510 7 4 8 1
YES 5
2 61 4
NO
7 0100 100 100 100 100 100 100
YES 100
В первом примере подходит, например, точка с координатой $$$5$$$. Суммарное расстояние от нее до всех остальных равно $$$|5 - 10| + |5 - 7| + |5 - 4| + |5 - 8| + |5 - 1| = 5 + 2 + 1 + 3 + 4 = 15$$$.
Во втором примере нет ни одной подходящей точки.
В третьем примере все семь точек имеют одинаковые координаты, а расстояние от новой точки до остальных должно быть равно нулю, поэтому подходящей является ровно одна точка с координатой $$$100$$$.
Дан неориентированный граф, состоящий из $$$n$$$ вершин, пронумерованных от $$$1$$$ до $$$n$$$.
Ваша задача — выбрать подмножество из ровно $$$k$$$ различных вершин данного графа. Пусть выбранные вершины — это $$$v_1, v_2, \cdots, v_k$$$. Тогда все эти вершины удаляются из графа, а вместо них добавляется новая вершина $$$V$$$, соединённая со всеми вершинами, с которыми была соединена каждая из вершин $$$v_1, v_2, \cdots, v_k$$$ (то есть если хотя бы одна вершина $$$v_i$$$ не соединена с какой-то вершиной $$$x$$$, то и $$$V$$$ не будет соединена с $$$x$$$).
Можно ли сделать так, чтобы вершина $$$V$$$ была соединена со всеми оставшимися вершинами графа? Если можно, то выведите выбранные вершины $$$v_1, v_2, \cdots, v_k$$$ в произвольном порядке.
Если существует несколько ответов, то выведите любой из них.
В первой строке записаны два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \lt n \le 2000$$$) — количество вершин графа и требуемый размер подмножества.
В $$$i$$$-й из следующих $$$n$$$ строк записаны $$$n$$$ целых чисел $$$g_{i,1}, g_{i,2}, \dots, g_{i,n}$$$, где $$$g_{i, j}$$$ равно $$$1$$$, если между вершинами $$$i$$$ и $$$j$$$ в графе есть ребро, и $$$0$$$, если ребра нет. $$$g_{i, i} = 0$$$ для всех $$$i$$$. $$$g_{i, j} = g_{j, i}$$$ для всех $$$i$$$ и $$$j$$$.
Если не существует требуемого подмножества размера ровно $$$k$$$, то выведите $$$-1$$$.
Иначе выведите $$$k$$$ различных целых чисел от $$$1$$$ до $$$n$$$ — номера вершин выбранного подмножества в произвольном порядке. Если существует несколько ответов, то выведите любой из них.
5 20 0 1 1 10 0 1 1 11 1 0 0 01 1 0 0 01 1 0 0 0
1 2
5 20 0 1 1 10 0 0 1 11 0 0 0 01 1 0 0 01 1 0 0 0
-1
10 70 1 0 1 1 1 1 1 1 11 0 1 0 1 1 1 1 1 00 1 0 1 1 1 1 1 1 11 0 1 0 1 1 1 1 1 01 1 1 1 0 1 1 1 0 11 1 1 1 1 0 0 0 1 11 1 1 1 1 0 0 0 1 11 1 1 1 1 0 0 0 1 11 1 1 1 0 1 1 1 0 11 0 1 0 1 1 1 1 1 0
5 9 2 4 10 1 3
Бинарная строка — это строка, состоящая из символов 0 и/или 1. Назовем бинарную строку чередующейся, если в ней нет двух одинаковых соседних символов. Например, строки 0, 1, 101, 0101 — чередующиеся.
Для бинарной строки определим чередующуюся $$$k$$$-раскраску следующим образом:
Например, для строки 100111 существует чередующаяся $$$3$$$-раскраска: покрасим символы $$$2$$$ и $$$6$$$ в цвет $$$1$$$, символы $$$1$$$, $$$3$$$, и $$$4$$$ в цвет $$$2$$$, а символ $$$5$$$ — в цвет $$$3$$$. Тогда для каждого из трех цветов строка, состоящая только из символов этого цвета, будет чередующаяся (для цвета $$$1$$$ это 01, для цвета $$$2$$$ — 101, для цвета $$$3$$$ — 1).
Вам дана бинарная строка $$$s$$$. Вам нужно обрабатывать запросы двух типов:
В первой строке задано одно целое число $$$n$$$ ($$$1 \le n \le 4 \cdot 10^5$$$) — длина строки $$$s$$$.
Во второй строке задана $$$s$$$ ($$$|s| = n$$$) — последовательность из $$$n$$$ символов 0 и/или 1.
В третьей строке задано одно целое число $$$q$$$ ($$$1 \le q \le 2 \cdot 10^5$$$) — количество запросов.
Далее следуют $$$q$$$ строк. Каждая из этих строк задана в одном из двух форматов:
На каждый запрос второго типа выведите одно целое число — ответ на него (минимальное $$$k$$$, для которого существует чередующаяся $$$k$$$-раскраска соответствующей строки).
81110011192 3 82 1 81 81 72 1 82 3 81 81 22 1 8
3 4 3 3 2