Студент четвертого курса МИСИС Владислав получил задание напечатать логотипы VK для олимпиады «Когнитивные технологии». Программа для печати, которой решил воспользоваться Владислав, оказалась необычной и могла работать только с отрезками прямых. В связи с этим Владислав разработал свой дизайн логотипа, в котором используются только отрезки.
Для универсальности Владислав ввел параметр $$$h$$$, который задает высоту логотипа, где $$$3 \le h \le 10^5$$$. При этом ширина логотипа всегда равна пяти. На рисунке приведена схема того, как выглядит логотип высоты $$$h$$$ на клетчатом поле. На рисунке формула $$$[h / 2]$$$ обозначает целую часть с округлением вниз. Также на рисунке приведены примеры логотипов с высотой $$$h = 3$$$ и $$$h = 4$$$.
Теперь Владиславу нужно вычислить площадь логотипа VK высоты $$$h$$$, чтобы понимать расход краски для печати. Помогите Владиславу справиться с этой задачей.
В единственной строке дано единственное целое число $$$h$$$ ($$$3 \le h \le 10^5$$$) — высота логотипа VK.
В единственной строке выведите единственное целое число — площадь логотипа VK высоты $$$h$$$.
3
10
4
13
Дано дерево, состоящее из $$$n$$$ вершин, пронумерованных числами от $$$1$$$ до $$$n$$$. У каждой вершины $$$v$$$ кроме корневой непосредственный предок равен $$$p_v$$$, если $$$v$$$ — корень, то выполняется $$$p_v = v$$$. Вершина $$$u$$$ называется предком $$$v$$$, если $$$u$$$ содержится на простом пути от $$$v$$$ до корня дерева. В частности, сама вершина, ее непосредственный предок и корень всегда являются ее предками.
Пусть $$$S$$$ — некоторое множество вершин дерева, обозначим через $$$\textrm{LCA}(S)$$$ наименьшего общего предка множества $$$S$$$, то есть наиболее удаленную от корня вершину, которая является предком для каждой вершины из $$$S$$$.
Например, пусть дерево состоит из $$$6$$$ вершин и имеет вид как на картинке выше. Тогда:
Требуется узнать сумму значений номеров наименьших общих предков для всех непустых подмножеств вершин дерева. Так как ответ может быть слишком большим, выведите его по модулю $$$10^9 + 7$$$
Первая строка входных данных содержит единственное число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Далее следуют описания наборов входных данных.
Первая строка каждого набора содержит целое число $$$n$$$ ($$$1 \le n \le 10^5$$$) — количество вершин в дереве.
Вторая строка каждого набора содержит $$$n$$$ целых чисел $$$p_1, p_2, \dots, p_n$$$ ($$$1 \le p_i \le n$$$) — массив предков.
Гарантируется, что массив $$$p$$$ кодирует некоторое корневое дерево, и что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$10^5$$$.
Для каждого набора входных данных на отдельной строке выведите единственное число — сумму значений функции $$$\textrm{LCA}$$$ по всем подмножествам вершин дерева по модулю $$$10^9 + 7$$$.
364 5 5 4 4 122 251 1 1 2 3
250 5 44
Первый набор входных данных соответствует дереву из условия.
Мадока недавно нашла свой фотоальбом из детского сада. И она хочет вырезать как можно больше из него фотографий, так как они ей не нравятся. Но при этом в нем есть фотки со своим любимым попугайчиком и она их никак не хочет трогать.
Фотоальбом представляет собой прямоугольник $$$n \times m$$$, где в каждой клетке содержится ровно одна фотография. Также для каждой фотографии известно, есть ли на ней попуг. Мадока может вырезать только подпрямоугольники фотоальбома. Но при том вырезанные подпрямоугольники не могут пересекаться или касаться по сторонам.
Так, например, следующие прямоугольники нельзя вырезать, так как они касаются по стороне:
Поэтому Мадоке стало интересно, а какое максимальное количество фотографий она может вырезать, соблюдая правила, и чтобы ни одна фотка с попугом не была вырезана.
Данная задача состоит из нескольких наборов тестовых случаев.
В первой строке задано единственное число $$$t$$$ ($$$1 \leq t \leq 3000$$$) — количество тестовых случаев. Затем идет их описание.
В первой строке каждого тестового случая заданы два числа $$$n, m$$$ ($$$ 1 \leq n \leq 5, 1 \leq m \leq 10^4$$$).
Гарантируется, что сумма $$$m$$$ по всем тестовым случаям не превосходит $$$10^4$$$
Затем идут $$$n$$$ бинарных строк $$$a_1 a_2 \ldots a_m$$$, где равенство $$$a_j = 1$$$ означает, что в этой строке $$$j$$$-я фотография содержит попуга и ее нельзя вырезать.
Для каждого тестового случая выведите в единственной строке максимальное количество фотографий, которое можно вырезать, чтобы выполнялось условие.
32 30000104 31010000000114 3000100000001
4 6 7
Примеры оптимальных ответов на семплы
Для подготовки к олимпиаде «Когнитивные Технологии» Мадока решила все задачи в мире на сортировки перестановок. Но жюри смогли удивить ее, и дали задачу, которую она нигде до этого не видела, и она не смогла решить ее. Вот она:
Дана перестановка $$$p_1, p_2, \ldots, p_n$$$. С ней можно выполнять следующую операцию:
Нужно отсортировать перестановку не более, чем за $$$4 \cdot n$$$ операций, либо сообщить, что это невозможно.
Данная задача состоит из нескольких наборов входных данных.
В первой строке каждого набора задано единственное число $$$t$$$ ($$$1 \leq t \leq 5 \cdot 10^4$$$) — количество наборов входных данных. Затем идет их описание.
В первой строке каждого набора задано число $$$n$$$ ($$$3 \leq n \leq 2 \cdot 10^5$$$) — размер перестановки.
Во второй строке задана перестановка $$$p_1, p_2, \ldots, p_n$$$ ($$$1 \leq p_i \leq n$$$).
Гарантируется, что сумма $$$n$$$ по всем тестовым случаям не превосходит $$$2 \cdot 10^5$$$
Для набора входных данных выведите:
Каждую операцию выведите на отдельной строке в формате $$$i, j$$$ $$$(1 \leq i, j \leq n, p_i = 1, |i - j| \leq \frac{n}{2}, i \neq j$$$), означающее, что нужно поменять местами $$$p_i$$$ и $$$p_j$$$.
233 2 143 4 2 1
-1 3 4 2 2 3 3 1
В первом тесте должно выполняться, что $$$|i - j| \le 1$$$, а во втором $$$|i - j| \le 2$$$
Так во втором тесте изначально дана перестановка $$$3, 4, 2, 1$$$, после первой операции она стала $$$3, 1, 2, 4$$$, после второй $$$3, 2, 1, 4$$$, а после третьей $$$1, 2, 3, 4$$$.
Молодой ученый-астроном из МИСИС Виталий Олегович занимается исследованием звезд в космическом пространстве. Для своих исследований он создал модель, в которой проверяет различные гипотезы. Для очередного исследования ему понадобилась помощь программистов. Дело в том, что ему необходимо эффективно определять количество звезд внутри сферических областей пространства. Помогите молодому ученому с его задачей!
В первой строке через пробел заданы два целых числа $$$n$$$ и $$$q$$$ — количество звезд в модели Виталия Олеговича и количество запросов, $$$1 \le n, q \le 10^5$$$.
В следующих $$$n$$$ строках заданы координаты звезд. В каждой строке через пробел даны три целых числа $$$x, \ y, \ z$$$ — координаты очередной звезды в трехмерном пространстве, $$$1 \le x, y, z \le 10^6$$$.
Известно, что координаты всех $$$n$$$ звезд Виталий Олегович сгенерировал для своей модели так, что они являются независимыми случайными величинами с целочисленным равномерным распределением в диапазоне от $$$1$$$ до $$$10^6$$$. То есть каждая звезда с одинаковой вероятностью может получить любые целочисленные координаты $$$x, y, z$$$ с ограничениями $$$1 \le x, y, z \le 10^6$$$. При этом, разные звезды могли получить одинаковые координаты.
В следующих $$$q$$$ строках заданы запросы, ответы на которые Виталий Олегович хочет получить. В каждой строке через пробел даны четыре целых числа $$$x, \ y, \ z, \ r$$$ — координаты центра и радиус сферы, для которой нужно посчитать количество звезд лежащих строго внутри этой сферы, $$$1 \le x, y, z \le 10^6$$$, $$$1 \le r \le \bold{10^5}$$$.
На каждый из $$$q$$$ запросов выведите в отдельной строке единственное целое число — количество звезд, которые лежат строго внутри очередной сферы.
1 3142 18468 6335142 18468 6335 1100 18468 6335 42100 18468 6335 43
1 0 1
Факториалом целого положительного числа $$$n$$$ называется число $$$n! = 1 \cdot 2 \cdot \ldots \cdot n$$$.
Леопардовым называется число, представимое в виде произведения факториалов. Например, число $$$2880$$$ является леопардовым ($$$2! \cdot 2! \cdot 3! \cdot 5!$$$).
Горилловым называется число, представимое в виде суммы ровно трёх леопардовых чисел. Например, число $$$342$$$ является горилловым ($$$6 + 96 + 240$$$).
Красотой гориллового числа называется количество упорядоченных способов представить его в виде суммы трёх леопардовых чисел. Заметьте, что представления $$$6 + 96 + 240$$$ и $$$96 + 6 + 240$$$ считаются различными. Например, красота гориллового числа $$$6$$$ равна $$$4$$$ ($$$1 + 1 + 4$$$, $$$1 + 4 + 1$$$, $$$2 + 2 + 2$$$, $$$4 + 1 + 1$$$).
Вам предстоит ответить на $$$q$$$ запросов.
Каждый запрос задаёт отрезок целых чисел $$$[l \ldots r]$$$. Посчитайте сумму красот горилловых чисел $$$x$$$ на этом отрезке ($$$l \le x \le r$$$).
В первой строке дано целое число $$$q$$$ ($$$1 \le q \le 5000$$$) — количество запросов.
В следующих $$$q$$$ строках даны целые числа $$$l, r$$$ ($$$1 \le l \le r \le 10^9$$$) — отрезок запроса.
Выведите $$$q$$$ целых чисел — ответ для каждого запроса.
41 677 100500150 14441 1000000000
11 878262 27713 133806210
Разработчик задач Олег устроился в Сбер. Ему поручили придумать новую задачу для тестирования стажеров. Он придумал совершенно новую и оригинальную задачу. В этой задаче участнику нужно посчитать в связном графе количество точек сочленения и мостов. Олег придумал красивую легенду, написал решение, однако забыл придумать тесты.
Связный граф — это граф, в котором существует путь между любой парой вершин.
Мост в связном графе — это ребро, удаление которого приводит к тому, что найдутся две вершины между которыми нет пути.
Точка сочленения в связном графе — это вершина, удаление которой приводит к тому, что найдутся две вершины между которыми нет пути.
Уже завтра олимпиада, поэтому Олег считает(из своего опыта), что одного теста в задаче достаточно. Олег хочет, чтобы в единственном тесте был задан связный граф ровно с $$$k_1$$$ мостами и $$$k_2$$$ точками сочленения. Помогите Олегу.
Можно показать, что в указанных ограничениях решение всегда существует.
В единственной строке даны два числа $$$k_1$$$ и $$$k_2$$$ ($$$1 \le k_1, k_2 \le 1000$$$) — количество мостов и точек сочленения в графе.
В первой строке выведите два числа $$$n$$$, $$$m$$$ ($$$3 \le n, m \le 10000$$$) — количество вершин и ребер в графе.
В следующих $$$m$$$ строках выведите по два целых числа $$$v_j, u_j$$$ ($$$1 \le v_j, u_j \le n$$$) — концы $$$j$$$-го ребра в графе.
Граф не должен содержать петель и кратных ребер.
3 2
4 3 1 2 2 3 3 4
Граф в примере. Рёбра между вершинами $$$1$$$—$$$2$$$, $$$2$$$—$$$3$$$, $$$3$$$—$$$4$$$ являются мостами, а вершины $$$2$$$, $$$3$$$ — точками сочленения.
Разработчик задачи не Олег. В задаче больше одного теста.
Вам дано клеточное поле $$$n \times m$$$. Некоторые клетки имеют углубления, в которые можно вставлять фигурки; они обозначены символом «.», остальные клетки обозначены символом «#».
Также у вас есть фигурки трех видов, которые вы можете вставлять в любые свободные клетки поля. Они изображены на рисунке ниже:
Ваша задача состоит в том, чтобы заполнить все свободные клетки указанными фигурками или сказать, что это невозможно.
Первая строка ввода содержит одно число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Затем следуют описания наборов.
Первая строка каждого набора содержит пару чисел $$$n$$$ и $$$m$$$ ($$$2 \le n, m \le 10^6$$$) — высоту и ширину поля, соответственно.
Затем следуют $$$n$$$ строк, каждая из которых состоит из $$$m$$$ символов «.» или «#».
Сумма $$$n \cdot m$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^6$$$.
Для каждого набора входных данных выведите «No», если ответа не существует.
В ином случае в первой строке выведите «Yes», а затем выведите $$$n$$$ строк, каждая из которых состоит из $$$m$$$ чисел от $$$0$$$ до $$$10^9$$$. Клетки, в которых нет фигурок, должны быть обозначены числом $$$0$$$, а остальные клетки могут содержать произвольные числа, при чем каждая фигурка должна быть обозначена множеством клеток, содержащих одинаковые числа.
36 6#....#.#..#..............#..#.#....#4 4....#..##..#....4 7...#.....###.....#.....###..
Yes 0 1 1 2 2 0 1 0 1 2 0 2 1 1 3 3 2 2 4 4 3 3 5 5 4 0 4 5 0 5 0 4 4 5 5 0 No No
В далекой галактике существует загадочный мир, известный как «Призрачный мир». В этом мире существуют различные существа, называемые «Призрачными». Каждый Призрачный обладает уникальными способностями и приоритетом.
В центре Призрачного мира находится древнее дерево, известное как «Высший Разум». Это существо является связующим звеном для всех Призрачных. Каждый Призрачный представлен вершиной в графе, где ребра представляют собой связи между Призрачными.
Но связи между Призрачными не так просты, как кажется. Каждая связь имеет свой приоритет, который определяет силу и значимость этой связи. Чем выше приоритет, тем сильнее связь.
Изначально, между Призрачными нет никаких связей.
В Призрачном мире существуют два типа запросов, которые могут быть сделаны к Высшему Разуму:
1. Запрос на добавление связи: + $$$a$$$ $$$b$$$ $$$k$$$. Этот запрос добавляет новую связь между двумя Призрачными существами с приоритетом $$$k$$$. Благодаря этому запросу, новая связь будет создана между Призрачными существами $$$a$$$ и $$$b$$$ с приоритетом $$$k$$$.
2. Запрос на поиск минимального приоритета: ? $$$p$$$. Этот запрос позволяет найти минимальный неотрицательный приоритет $$$k$$$, при котором ребра с приоритетом меньше или равном $$$k$$$, образуют ровно $$$p$$$ компонент связности в графе Призрачного мира. Если такого приоритета не существует, выводится значение $$$-1$$$.
Таким образом, игрокам предстоит использовать эти запросы, чтобы управлять связями в Призрачном мире и находить определенное количество компонент связности с заданным приоритетом. Это поможет им раскрыть тайны и силу Призрачного мира, и, возможно, даже спасти его от опасности.
Первая строка входных данных содержит два целых числа $$$n$$$ — количество вершин и $$$q$$$ — количество запросов ($$$1 \leq n \leq 3000$$$, $$$0 \leq q \leq 10^5$$$)
Далее в следующих $$$q$$$ строчках идет описание запросов. Описание каждого запроса имеет следующий вид:
Выведите ответ на каждый запрос второго типа
6 12 + 1 2 1 + 1 3 3 + 2 3 7 + 4 5 2 + 5 6 4 ? 1 + 6 3 5 + 6 3 10 + 6 4 6 ? 6 ? 2 ? 1
-1 0 4 5
Итоговый граф в примере
Харухи Судзумии было скучно, поэтому она решила принять участие в соревновании по спортивному программированию. Соревнование состоит из одной задачи:
Дан круг, состоящий из $$$2n$$$ секторов, пронумерованных от $$$1$$$ до $$$2n$$$ по часовой стрелке, начиная с некоторой точки. За сектором $$$1$$$ следует сектор $$$2$$$, за сектором $$$2$$$ — сектор $$$3$$$ и так далее, а за сектором $$$2n$$$ следует сектор $$$1$$$. Между любыми соседними$$$^{[1]}$$$ секторами можно передвигаться за $$$1$$$ единицу времени. Помимо этого, из сектора $$$i$$$ в сектор $$$j$$$, расположенный диаметрально противоположно$$$^{[2]}$$$ сектору $$$i$$$, можно сдвинуться за $$$a_i$$$ единиц времени. Заметим, что в данном случае время передвижения зависит от направления движения: $$$a_i$$$ из $$$i$$$ в $$$j$$$ и $$$a_j$$$ из $$$j$$$ в $$$i$$$.
Необходимо ответить на $$$q$$$ запросов. Каждый запрос задается двумя номерами секторов $$$u_i$$$ и $$$v_i$$$. Для каждого запроса необходимо найти минимальное количество времени, которое потребуется, чтобы попасть в сектор $$$v_i$$$, если начинать в секторе $$$u_i$$$.
$$$^{[1]}$$$ Два сектора $$$i$$$ и $$$j$$$ называются соседними, если $$$i$$$ следует сразу после $$$j$$$ или наоборот.
$$$^{[2]}$$$ Два сектора $$$i$$$ и $$$j$$$ называются диаметрально противоположными, если $$$|i - j| = n$$$.
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \leq t \leq 5000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
В первой строке дано два числа $$$n$$$ и $$$q$$$ ($$$1 \leq n \leq 5 \cdot 10^4, 1 \leq q \leq 10^5$$$).
Во второй строке дано $$$2n$$$ чисел $$$a_1, a_2, a_3, \dots, a_{2n}$$$ ($$$1 \leq a_i \leq 10^5$$$).
В следующих $$$q$$$ строках описаны все запросы.
В $$$i$$$-й строке содержатся два числа $$$u_i$$$ и $$$v_i$$$ ($$$1 \leq u_i, v_i \leq 2n$$$) — описание очередного запроса.
Гарантируется, что сумма $$$2n$$$ по всем наборам входных данных и сумма $$$q$$$ по всем наборам входных данных не превосходят $$$10^5$$$.
Для каждого набора входных данных выведите $$$q$$$ строк: число в $$$i$$$-й строке должно быть равно минимальному количеству времени для того, чтобы попасть из сектора $$$u_i$$$ в сектор $$$v_i$$$.
11 21 11 22 1
1 1
14 81 2 3 4 5 6 7 81 55 12 66 23 77 34 88 4
1 4 2 4 3 4 4 3
Вы очень любите старые Java игры с кнопочных телефонов, поэтому уже давно прошли их все. Сегодня ночью вам приснилась очень интересная игра, которой никогда не существовало. Игра называлась «Приключения гуманоида 3».
В точке $$$(0, 0)$$$ бесконечного клетчатого поля находится гуманоид, которым вы управляете. В точке $$$(n, m)$$$ находится горилла, которую вы хотите навестить. Горилла очень ждёт встречи с вами, но боится заблудиться, поэтому стоит на месте.
Для управления гуманоидом доступны четыре клавиши: $$$2$$$, $$$4$$$, $$$6$$$, $$$8$$$.
Вам также приснилась строка $$$s$$$, задающая последовательность клавиш. Вы помните, что выбрали ровно $$$k$$$ последовательных клавиш из $$$s$$$ и нажали их по порядку. Мог ли гуманоид добраться до гориллы или вы что-то перепутали? Считается, что гуманоид добрался до гориллы, если ровно после $$$k$$$ шагов он закончил в клетке с ней.
В первой строке дано целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Далее следуют описания наборов.
В первой строке записана строка $$$s$$$ ($$$s_i \in \{2, 4, 6, 8\}$$$, $$$1 \le |s| \le 10^6$$$) — последовательность клавиш.
Во второй строке даны целые числа $$$n$$$, $$$m$$$, $$$k$$$ ($$$-10^6 \le n, m \le 10^6$$$, $$$1 \le k \le |s|$$$).
Гарантируется, что сумма длин $$$s$$$ по всем наборам входных данных не превосходит $$$10^6$$$.
Выведите «YES», если гуманоид мог добраться до гориллы и «NO» — в противном случае.
Вы можете выводить ответ в любом регистре.
52846866484-1 0 122268-1 2 445 -3 1264682282 -4 428844422-3 -1 6
YES NO NO NO YES