Чтобы попасть в заброшенный дом, в котором прячется Оно, ребятам нужно открыть дверь с хитроумным замком. Этот замок представляет собой дерево из $$$n$$$ вершин, каждая из которых покрашена в белый или черный цвет. Чтобы открыть замок, нужно уничтожить все вершины этого дерева. Для этого ребята могут выполнять две операции:
Разумеется, ребятам хочется поскорее попасть в дом, поэтому им интересно узнать, какое минимальное количество операций им потребуется, чтобы открыть замок.
В первый строке дано целое число $$$n$$$ — количество вершин в графе ($$$1 \le n \le 200\,000$$$). В следующей строке дана строка $$$s$$$ длины $$$n$$$ из символов $$$0$$$ и $$$1$$$. Если $$$i$$$-й символ строки $$$s$$$ равен $$$0$$$, то $$$i$$$-я вершина покрашена в белый цвет, иначе — в черный. В следующих $$$n - 1$$$ строках дано по два целых числа $$$a_i$$$ и $$$b_i$$$ — ребра дерева ($$$1 \le a_i, b_i \le n$$$).
Гарантируется, что ребра образуют дерево.
Выведите одно число — минимальное количество операций, необходимое, чтобы открыть замок.
4 1000 1 2 1 3 1 4
2
В первом тесте замок можно открыть за два действия следующим образом:
Джокер известен своей безумностью. Именно из-за нее он использует систему счисления с основанием $$$a$$$, в которой все числа состоят из цифр от $$$0$$$ до $$$a - 1$$$. Также Джокер очень любит танцевать. Он может танцевать очень долго, поэтому он придумал для себя правило, которое не даст ему танцевать бесконечно. Конечно же, правило тоже странное: когда Джокер танцует, каждую секунду, начиная с первой, он произносит вслух число секунд, прошедшее с начала танца (разумеется, он произносит это число в $$$a$$$-ичной системе счисления), без ведущих нулей. Например, если $$$a = 3$$$, первые пять чисел, которые произнесет Джокер, будут следующими:
Джокер выбрал массив $$$b_i$$$, состоящий из $$$a$$$ целых неотрицательных чисел, и решил останавливать свой танец, если после очередного произнесенного числа, он, за все время танца, ровно $$$b_i$$$ раз произнес цифру $$$i$$$ для всех $$$0 \le i \lt a$$$. Помогите ему определить, сколько секунд будет длиться его танец, или же сообщите, что он будет танцевать вечно.
В первой строке дано число $$$a$$$ — основание системы исчисления ($$$2 \le a \le 100\,000$$$). Во второй строке дано $$$a$$$ целых чисел $$$b_i$$$ ($$$0 \le b_i \le 10^9$$$).
Если Джокер никогда не закончит свой танец, выведите $$$-1$$$. Иначе выведите продолжительность его танца в секундах.
10 1 2 1 1 1 1 1 1 1 1
10
2 3 5
4
5 0 0 0 0 0
-1
3 1 3 1
-1
Малефисента очень расстроилась, когда не смогла отменить наложенное на Аврору заклятье, потому что оно вечно и нерушимо. К счастью, для нас это не такая большая проблема, потому что в нашей версии сказки все заклятья описываются математически и снимаются заметно проще.
Заклятье описывается двумы натуральными числами $$$a$$$ и $$$b$$$. Процесс снятия заклятья происходит следующим образом:
Для того, чтобы завершить ритуал снятия заклятья, нужно назвать получившееся в конце число. Помогите Малефисенте вычислить его.
В первой строке дано число $$$a$$$, на второй — число $$$b$$$ ($$$1 \le a \le b \lt 10^{100\,000}$$$). Оба числа даны без ведущих нулей.
Выведите число, которое получится в конце процесса снятия заклятья.
1 5
3
6 8
3
«Клубу неудачников» после победы над Пеннивайзом почти удалось сбежать из заброшенного дома, осталось только решить кодовый замок на двери.
На кодовом замке написано $$$n$$$ натуральных чисел $$$a_1, a_2, \ldots, a_n$$$. И чтобы открыть его, нужно найти размер наибольшего подмножества этих чисел, что НОД чисел в подмножестве строго больше единицы. НОД множества чисел — это наибольшее натуральное число, делящее все числа из множества.
Помогите героям справиться с этой задачей!
В первой строке дано одно целое число $$$n$$$ ($$$1 \leq n \leq 1000$$$) — количество натуральных чисел.
Во второй строке даны $$$n$$$ натуральных чисел $$$a_i$$$ ($$$2 \leq a_i \leq 10^{18}$$$).
Выведите одно целое число — размер наибольшего подмножества данных чисел, что НОД чисел в этом подмножестве строго больше единицы.
4 6 15 10 42
3
3 2 2 2
3
1 35
1
В первом тесте можно выбрать множество $$$\{6, 15, 42\}$$$, НОД чисел в этом множестве равен $$$3$$$.
У Авроры есть $$$n$$$ кубиков. У каждого кубика есть шесть сторон, на каждой из которых написана цифра от $$$0$$$ до $$$9$$$. Цифры на одном кубике могут повторяться.
Феи решили научить Аврору арифметике, и дали задание — собирать из кубиков числа. Аврора может выбрать произвольный набор кубиков, повернуть каждый кубик из набора произвольной стороной вверх и расставить их в произвольном порядке, чтобы получить желаемое число. Конечно же, Аврора собирает число без ведущих нулей.
Теперь, чтобы Аврора научилась считать, феи хотят попросить её по-очереди складывать натуральные числа в порядке возрастания. Кубики, использованные для складывания одного числа, могут быть использованы и для складывания следующих чисел. Помогите феям определить минимальное натуральное число, которое Аврора не сможет сложить, используя данный набор кубиков.
В первой строке дано целое число $$$n$$$ — количество кубиков ($$$1 \le n \le 100\,000$$$).
В каждой из следующих $$$n$$$ строк дана строка из шести цифр $$$a_{i,1}, a_{i,2}, \ldots, a_{i,6}$$$ ($$$0 \le a_{i,j} \le 9$$$).
Выведите наименьшее натуральное число, которое Аврора не сможет сложить.
2 012345 098765
11
3 123456 789012 345678
90
5 111111 222222 333333 444444 555555
6
У Джокера есть дерево, в котором он выбрал $$$m$$$ простых путей: $$$(u_1, v_1)$$$, $$$(u_2, v_2)$$$, $$$\ldots$$$, $$$(u_m, v_m)$$$ — каждый путь задается двумя вершинами $$$u_i$$$ и $$$v_i$$$, лежащими на его концах. Причем все пути имеют ненулевую длину, то есть $$$u_i \neq v_i$$$.
Теперь Джокер хочет расставить на ребрах дерева веса — целые числа $$$0$$$ или $$$1$$$. Обозначим $$$s_i$$$ сумму весов ребер на $$$i$$$-м пути по модулю $$$2$$$ (иначе говоря, исключающее ИЛИ весов всех ребер на этом пути). Джокер называет расстановку весов на ребрах безумной, если выполняется неравенство $$$s_{i} \le s_{i+1}$$$ для всех $$$1 \le i \lt m$$$.
Ваша задача — посчитать количество безумных расстановок весов на ребрах. Так как Джокер сумашедший, он попросил вас найти остаток от деления этого числа на $$$998\,244\,353$$$.
В первой строке даны два целых числа $$$n$$$ и $$$m$$$ — количество вершин в дереве и количество выбранных путей ($$$2 \le n, m \le 250\,000$$$).
Во второй строке дано $$$n - 1$$$ целое число $$$p_i$$$, обозначающее, что в дереве есть ребро между вершинами с номерами $$$p_i$$$ и $$$i + 1$$$ ($$$1 \le p_i \lt i + 1$$$).
В следующих $$$m$$$ строках дано по два целых числа $$$u_i$$$ и $$$v_i$$$ — концы $$$i$$$-го пути ($$$1 \leq u_i \lt v_i \leq n$$$).
Выведите одно целое число — количество безумных расстановок весов на ребрах по модулю $$$998\,244\,353$$$.
3 31 21 22 31 3
2
4 41 1 11 22 33 41 4
3
4 21 2 31 23 4
6
Не только Сэм занимается тем, что строит дороги. Сегодня он повстречал другого человека, который занимается тем же. Они быстро нашли общий язык, и решили сыграть в игру.
Сейчас они строят прямоугольную часть дороги размерами $$$n$$$ на $$$m$$$ метров. Представим её в виде клетчатого поля $$$n \times m$$$. Перед началом игры, ни одна клетка этого поля ещё не построена. Игроки ходят по-очереди. За ход игрок может выбрать на поле любой прямоугольник с площадью не превышающей $$$s$$$, ни одна клетка которого ещё не построена, и построить все клетки внутри выбранного прямоугольника. Проигрывает игрок, который не может сделать ход. Сэм ходит первым. Помогите ему определить, выиграет ли он, при условии, что оба игрока стремятся выиграть и играют оптимально.
В первой строке даны три целых числа $$$n$$$, $$$m$$$ и $$$s$$$ ($$$1 \le n, m \le 1\,000$$$, $$$1 \le s \le n \cdot m$$$) — размеры поля и максимальная площадь прямоугольника, который можно построить за один ход.
Если Сэм может выиграть, в единственной строке выведите «YES». Иначе, выведите «NO».
1 4 2
YES
Аврора и Нотграсс решили сыграть в теннис и попросили Флитл побыть судьёй. Изначально их счет равнялся $$$0 : 0$$$. Затем, несколько раз очки одного из игроков увеличивались на $$$1$$$. А закончилась игра со счётом $$$a : b$$$.
Фислвит было скучно, поэтому она считала сумму НОД-ов очков игроков после каждого изменения счёта. НОД — наибольший общий делитель двух чисел. Например, игра могла проходить так:
В таком случае, у Фислвит получилась бы сумма $$$1 + 2 + 1 + 2 + 1 = 7$$$.
После игры Фислвит стало интересно, какое наименьшее число могло у неё получиться. Помогите ей найти это значение.
В единственной строке даны два целых числа $$$a$$$ и $$$b$$$ — финальные очки Авроры и Нотграсс соответственно ($$$0 \le a, b \le 10^9$$$).
Выведите единственное целое число — минимальное значение, которое могло получиться у Фислвит.
2 1
3
4 6
11
0 0
0
10 10
31
Сегодня у Филиппа и Авроры свадьба, на которую приглашены все феи Топких Болот. Аврора слегка заскучала и решила понаблюдать за общением фей.
Исходно на свадьбе находится $$$n$$$ фей, Аврора пронумеровала их от $$$1$$$ до $$$n$$$. Фея номер $$$i$$$ характеризуется своей общительностью — целым неотрицательным числом $$$a_i$$$.
За время наблюдения, Аврора видела $$$q$$$ интересных моментов. Во время $$$j$$$-го из них происходило событие одного из трех типов:
Аврору очень интересует, насколько интенсивно феи общаются. Для этого она хочет после каждого из событий определять суммарный уровень общительности всех фей, присутствующих на свадьбе. Помогите Авроре справиться с этой нелегкой задачей.
В первой строке даны два целых числа $$$n$$$ и $$$q$$$ — количество фей, исходно находящихся на свадьбе, и количество интересных моментов в наблюдении Авроры ($$$1 \le n, q \le 100\,000$$$).
Во второй строке даны $$$n$$$ целых чисел $$$a_i$$$ — значения общительности фей, исходно находящихся на свадьбе ($$$1 \le a_i \le 10^9$$$).
В следующих $$$q$$$ строках даны описания интересных моментов. Каждая из них начинается с целого числа $$$t_j$$$ — типа события ($$$t_j \in \{1, 2, 3\}$$$).
После каждого события выведите сумму значений общительности всех фей, находящихся на свадьбе.
6 5 2 3 9 5 6 6 1 3 3 5 2 2 3 2 2 7
34 37 31 27 23
«Клуб неудачников» под предводительством Билла пытается сбежать из заброшенного дома, в котором на них напал Пеннивайз. Дом можно представить в виде таблицы размера $$$n \times m$$$, каждая клетка которой либо свободна, либо занята стенкой. Изначально, компания друзей находится в некоторой свободной клетке, а выход из дома находится в другой свободной клетке. Друзья могут переходить между соседними по стороне свободными клетками.
Чтобы напугать друзей и не дать им успешно убежать, Пеннивайз постоянно меняет температуру воздуха. А именно, каждый раз, когда друзья переходят между двумя клетками, соседними по горизонтали, он уменьшает температуру на 1 градус, а когда переходят между двумя клетками, соседними по вертикали, увеличивает температуру на 1 градус. Температура воздуха может принимать любые целочисленные значения, в том числе, температура может быть отрицательной.
Друзья хотят, чтобы конечная температура воздуха, когда они выберутся из дома, как можно меньше отличалась от исходной температуры воздуха. Помогите им определить минимальное возможное отличие исходной температуры от конечной. Обратите внимание, что значения температуры воздуха во время нахождения друзей в доме, их не интересует. При необходимости, друзья могут несколько раз проходить через любые свободные клетки, в том числе стартовую клетку и клетку с выходом.
В первой строке даны два целых числа $$$n$$$ и $$$m$$$ — размеры таблицы ($$$1 \le n, m \le 1000$$$). В следующих $$$n$$$ строках находится по $$$m$$$ символов — описание таблицы. Описание состоит из символов «.», «#», «s» и «f». Если $$$j$$$-й символ в $$$i$$$-й строке равен «#», то в клетке $$$(i, j)$$$ находится стенка, иначе эта клетка свободна. Символ «s» обозначает стартовую позицию друзей, а символ «f» обозначает клетку, в которой находится выход. Гарантируется, что в таблице содержится ровно один символ «s» и ровно один символ «f».
Если друзья не смогут выбраться из дома, выведите -1. Иначе, выведите неотрицательное число — минимальное возможное отличие исходной температуры от конечной, которого они могут добиться.
4 3 ..f ..# s## ...
0
В первом тесте друзья могут сначала перейти два раза в клетку сверху, и потом два раза в клетку справа. Тогда, сначала температура увеличится на 2, а после — уменьшится на 2. В итоге, отличие от исходной будет $$$0$$$ градусов.
Для победы над злобным клоуном в финальном сражении, Майк созвал всех своих друзей. Осталось только определиться с тактикой ведения боя, и победа в кармане.
Всего в бою будет участвовать $$$n$$$ друзей. Для эффективности ведения боя пронумеруем их от $$$1$$$ до $$$n$$$. Исходно друзья выстроились в ряд, причем на $$$i$$$-е место в ряду встал друг с номером $$$a_i$$$. После долгих размышлений, Майк пришел к выводу, что наиболее эффективное расположение друзей будет достигнуто, если на $$$i$$$-м месте в ряду будет стоять друг с номером $$$b_i$$$.
Для того, чтобы изменить порядок друзей в ряду, Майк может совершить несколько перестроений. Каждое перестроение происходит следующим образом: Майк выбирает некоторое непустое подмножество друзей, после чего эти друзья выходят из ряда и встают в его начало в порядке, обратном тому, в котором они стояли исходно. При этом порядок друзей, которые остались стоять в ряду, не меняется.
Например, если друзья стояли в порядке $$$3, 4, 7, 6, 2, 5, 1$$$, а Майк выбрал друзей с номерами $$$4, 7, 5$$$, после перестроения друзья будут стоять в порядке $$$5, 7, 4, 3, 6, 2, 1$$$.
Бой с Пеннивайзом начнется довольно скоро, поэтому Майк хочет расположить друзей в желаемом порядке не более, чем за $$$15$$$ перестроений. Помогите ему справиться с этой задачей!
Обратите внимание, что минимизировать количество перестроений не требуется. Гарантируется, что, за не более чем $$$15$$$ перестроений, добиться желаемого порядка возможно.
В первой строке дано одно целое число $$$n$$$ — количество друзей в ряду ($$$1 \le n \le 10\,000$$$).
Вторая строка содержит $$$n$$$ различных целых чисел $$$a_i$$$ от $$$1$$$ до $$$n$$$ — исходный порядок друзей в ряду ($$$1 \le a_i \le n$$$). Третья строка содержит $$$n$$$ различных целых чисел $$$b_i$$$ от $$$1$$$ до $$$n$$$ — желаемый порядок друзей в ряду ($$$1 \le b_i \le n$$$).
В первой строке выведите целое число $$$k$$$ ($$$0 \le k \le 15$$$) — количество перестроений в найденном решении. В каждой из следующих $$$k$$$ строк выведите описание перестроений, которые необходимо совершить. Для каждого перестроения сначала выведите число $$$c_i$$$ — количество друзей, которые должны выйти из ряда ($$$1 \le c_i \le n$$$), а затем $$$c_i$$$ различных целых чисел от $$$1$$$ до $$$n$$$ — номера друзей, которые должны выйти из ряда. Номера можно выводить в произвольном порядке.
5 5 4 3 2 1 3 4 5 1 2
4 5 1 2 3 4 5 1 5 1 4 1 3
7 3 4 7 6 2 5 1 2 6 3 4 5 7 1
3 3 6 5 7 3 3 4 5 3 2 6 3
В первом тесте порядок друзей изменяется следующим образом:
$$$5, 4, 3, 2, 1 \rightarrow 1, 2, 3, 4, 5 \rightarrow 5, 1, 2, 3, 4 \rightarrow 4, 5, 1, 2, 3 \rightarrow 3, 4, 5, 1, 2$$$
Во втором тесте порядок друзей изменяется следующим образом:
$$$3, 4, 7, 6, 2, 5, 1 \rightarrow 5, 6, 7, 3, 4, 2, 1 \rightarrow 4, 3, 5, 6, 7, 2, 1 \rightarrow 2, 6, 3, 4, 5, 7, 1$$$
Развлекаясь с ранее неизведанными заклинаниями, Малефисента случайно получила свиток с посланием из будущего. На свитке было написано какое-то занимательное заклинание.
<note>
<to></to>
<from></from>
<heading></heading>
<body></body>
</note>
Малефисента сразу заметила несколько закономерностей. А именно: заклинание представляет из себя правильную скобочную последовательность, в которой открывающаяся скобка соответствует шаблону «<S>», а парная ей закрывающаяся — шаблону «</S>», где строка S — непустая строка из строчных латинских букв, равная для парных скобок.
У Малефисенты как раз оказалось старое неработающее заклинание. Она решила проверить, можно ли в нем переставить символы так, чтобы получившееся заклинание удовлетворяло тем же свойствам, что заклинание на свитке из будущего. Помогите Малефисенте переставить символы в ее заклинании желаемым образом, либо сообщите, что это невозможно.
В единственной строке дана строка $$$s$$$, состоящая из строчных латинских букв и символов «<», «>» и «/» — заклинание Малефисенты ($$$1 \le |s| \le 100\,000$$$).
Если переставить символы желаемым образом невозможно, выведите «Impossible».
Иначе, выведите строку, полученную из исходной перестановкой символов, которая удовлетворяет желаемым свойствам.
<test></test>
<test></test>
test<tist>/<>
Impossible
te<ste>st/<t>
<tset></tset>
<>test<>//<>test<>
<te><st></st></te>