BThero живет в богатой прекрасной стране — Демиляндии. Демиляндия представляет собой сеть из $$$n$$$ городов и $$$n-1$$$ двусторонних дорог между ними. Гарантируется, что из любого города можно попасть в любой другой по этим дорогам.
BThero учится в университете на программиста. Первый курс для него закончился успешно, теперь он хочет летом подработать немного денег. Он смог подсчитать для каждого города значение $$$p_i$$$ — сколько долларов он сможет заработать в $$$i$$$-м городе. Получилось так, что массив $$$p$$$ состоит из различных целых чисел от $$$1$$$ до $$$n$$$.
BThero еще не бывал в большинстве городов своей страны. Поэтому он решил убить двух зайцев одним выстрелом — он выберет себе маршрут, который начинается в произвольном городе $$$a$$$, заканчивается в произвольном городе $$$b \gt a$$$ и не проходит через один город дважды. По пути он будет одновременно подрабатывать в городах.
Однако ситуация с программистами в стране не очень простая. В некоторых городах он может легко заработать крупную сумму денег, а в некоторых ему придется экономить на расходах. От этого напрямую зависит его настроение. Если в городе непосредственно до нынешнего он заработал $$$x$$$ денег, а в нынешнем заработает $$$y \lt x$$$, то его настроение будет плохим. Соответственно, если $$$y \gt x$$$, его настроение будет хорошим.
Назовем запоминающимся маршрут, вдоль которого у BThero настроение будет изменяться каждый раз. Примеры его доходов в запоминающихся маршрутах: $$$[2, 5, 1, 4]$$$, $$$[3, 1, 2]$$$, $$$[1, 2]$$$. Заметим, что маршруты из двух городов тоже являются запоминающимися.
Он еще не запланировал свой маршрут, но для интересной жизни хочет чтобы маршрут был запоминающимся. Помогите ему найти общее количество таких маршрутов!
В первой строке входного файла дано одно целое число $$$n$$$ — количество городов в Демиляндии ($$$1 \le n \le 200000$$$). Во второй строке следуют $$$n$$$ целых чисел $$$p_1$$$, ..., $$$p_n$$$ — его подсчитанный доход в каждом городе ($$$1 \le p_i \le n$$$, $$$p_i \neq p_j$$$ для всех $$$i \neq j$$$). Следующие $$$n-1$$$ строк содержат пары различных целых чисел $$$a$$$, $$$b$$$ — номера городов, соединенных очередной дорогой ($$$1 \le a, b \le n$$$, $$$a \neq b$$$).
Выведите одно единственное целое число — количество запоминающихся маршрутов.
4 3 2 1 4 1 2 2 3 2 4
4
Все запоминающиеся маршруты из примера:
Учитель по физкультуре университета имени Сулеймана Демиреля решил провести турнир по настольному теннису. Для этого ему понадобится теннисный стол, две пары ракетки и много теннисных шариков.
За день до турнира он подготовил все нужные вещи. Однако, есть вероятность что не все шарики будут одного цвета. А учителю нельзя допускать этого, поскольку на кону стоит репутация всего турнира.
Учитель знает что в быту есть шарики всего $$$m$$$ цветов, пронумерованных от $$$1$$$ до $$$m$$$. У него есть всего $$$n$$$ шариков, цвет $$$i$$$-го из них – $$$a_i$$$. Времени до турнира остается все меньше и меньше. Поэтому учитель позвал к себе на помощь ровно $$$k$$$ ассистентов. Он даст каждому из них отдельно по одному шарику и скажет ему перекрасить этот шарик в другой цвет. Он должен попросить всех ассистентов, потому что некоторые из них могут обидеться, увидев, что другой ассистент отдыхает. А также он обязательно должен отправить ассистента для перекраски шарика, ведь иначе ассистент останется без работы.
Когда все ассистенты вернуться, он может снова отправить их всех заново для перекраски шариков. Он будет повторять так до тех пор, пока все шарики не станут одного цвета. Однако он задумался, а возможно ли этого достичь вообще?
На этот вопрос придется уже ответить вам.
В первой строке входного файла даны три целых чисел $$$n$$$, $$$m$$$ и $$$k$$$ — количество шариков, количество цветов и количество ассистентов ($$$2 \le m \le n \le 10^5$$$, $$$1 \le k \le n$$$).
Во второй строке входного файла даны $$$n$$$ целых чисел $$$a_1$$$, ..., $$$a_n$$$ — цвета всех шариков ($$$1 \le a_i \le m$$$).
Выведите YES если возможно сделать так, чтобы все шарики были одного цвета или выведите NO если это невозможно.
6 2 3 2 2 1 2 2 1
YES
4 3 3 2 1 3 2
YES
4 2 2 2 1 2 2
NO
В первом примере у учителя есть $$$3$$$ ассистента. Он может сделать все шарики одного цвета следующими действиями:
Заметьте, что учитель должен обязательно отправить каждого ассистента на перекраску. А также, ассистент обязательно должен перекрасить шарик в другой цвет.
В нашем университете очень часто проводятся разные мероприятия для студентов. Даже в условиях карантина университет отлично справился со своей задачей и не переставал радовать своих студентов в онлайне. Ждем всех свеженьких на SDU Welcome Party 2021!
Остановимся на одном конкретном мероприятии. Недавно был проведен массовый турнир по шахматам среди ровно $$$n$$$ участников. Турнир проводился неофициально, и участники могли сыграть между собой сколько угодно партий. Одна и та же пара игроков могла сыграть между собой неограниченное количество игр. А некоторые пары игроков могли не встретиться вообще. По результатам каждой партий участникам добавляли некоторое количество очков:
BThero знает результаты каждого игрока. $$$i$$$-й игрок имел ровно $$$a_i$$$ очков после завершения турнира. Однако BThero не знает сколько партий было сыграно в турнире суммарно. Помогите ему узнать минимальное и максимальное количество партий, которые могли быть сыграны в турнире.
В первой строке находится одно целое число $$$n$$$ ($$$2 \le n \le 10^5$$$) — количество участников.
В следующей строке содержатся $$$n$$$ целых чисел $$$a_1$$$, ..., $$$a_n$$$ — количество очков в конце турнира у каждого игрока ($$$0 \le a_i \le 10^9$$$).
Выведите два числа — минимальное и максимальное количество возможных партий в турнире. Если нет ни одного турнира соответствующего очкам игроков, выведите «-1 -1» (без кавычек).
3 1 4 4
-1 -1
3 2 3 4
4 4
10 6 1 0 7 0 3 4 2 2 1
10 13
5 2 0 3 5 9
7 9
Студенты Suleyman Demirel University ведут очень активный образ жизни. У нас в университете активно действуют более $$$20$$$ разных клубов. Абу, наш главный герой, на сей раз решил попробовать себя в MMDANCE Club. Пока что у него это неплохо получается.
Танцпол можно представить сверху как матрицу $$$A$$$ размера $$$n \times m$$$, где каждая клетка матрицы представляет собой отдельный сектор танцпола. В каждом секторе танцпола стоит ровно один танцор, и его высота равна $$$A_{i, j}$$$. В нашем случае можно считать что росты всех студентов — различные целые числа от $$$1$$$ до $$$n \times m$$$.
Поскольку Абу параллельно является одним из главных лиц ACM CLUB, он тут же по привычке решил посчитать некоторое интересное значение крутости для каждого сектора танцпола. Эту крутость он решил определить вот так:
Пока Вы читали условие, Абу уже рассказал своим друзьям значения крутости всех секторов. А сможете вы?
В первой строке даны два целых числа $$$n$$$ и $$$m$$$ — размеры танцпола ($$$2 \le n, m \le 250000$$$, $$$4 \leq n \times m \leq 500000$$$)
Каждая из следующих $$$n$$$ строк содержит $$$m$$$ чисел — росты всех танцоров ($$$1 \leq A_{i, j} \leq n \times m$$$)
В ровно $$$n$$$ строках выведите по $$$m$$$ целых чисел — крутости всех секторов танцпола.
2 3 1 6 4 5 2 3
4 2 3 1 6 5
Все числа входящие в $$$S_{2, 2}$$$ Список $$$T$$$:
Ербол агай ведет уроки программирования по Java для первокурсников. Семестр уже подходит к концу, а его студентам нужно защитить проект по Танчикам Денди (да-да, это действительно был их проект).
Всего у Ербол агая $$$n$$$ студентов, стоящих в очереди на защиту проекта. Ербол агай уже знает по своему опыту, что каждый отдельный студент — это гарантированная смерть некоторого количества нервных клеток в его мозгу. Каждый юноша гарантирует смерть ровно $$$x$$$ нервных клеток, а каждая девушка — смерть $$$y$$$ нервных клеток.
Ербол агай решил приготовиться и сделал $$$m$$$ самостоятельных расчетов. В каждом отдельном расчете он выбирает некоторый отрезок студентов $$$(l, r)$$$ и записывает количество нервных клеток $$$c$$$, которые умерли бы у него за день, если бы в этот день он принимал защиту проекта только от студентов с номерами в очереди на отрезке $$$[l, r]$$$.
Вот незадача! Сегодня утром Ербол агай случайно удалил список его студентов, стоящих в очереди. Повезло, что хотя бы результаты его расчетов остались в целостности и сохранности. Поскольку он уже не сможет восстановить свой список однозначно, он хотел бы определить хотя бы гендер каждого студента в очереди. Если возможны несколько очередей, его устраивает любой. Помогите агаю, восстановите очередь студентов в виде строки из $$$n$$$ символов x (юноша) и y (девушка).
В первой строке входного файла даны два целых числа $$$n$$$ и $$$m$$$ — количество студентов и количество сделанных расчетов ($$$1 \le n, m \le 5000$$$).
Во второй строке даны два целых числа $$$x$$$ и $$$y$$$ — количество гарантированно умирающих нервных клеток отдельно для юноши и для девушки ($$$1 \le x, y \le 10^5$$$).
В следующих $$$m$$$ строках даны тройки целых чисел $$$l_i$$$, $$$r_i$$$, $$$c_i$$$ — отрезок, на котором проводился расчет и суммарное количество нервных клеток, которые умрут в этом расчете ($$$1 \le l_i \le r_i \le n$$$, $$$1 \le c_i \le 10^9$$$).
Найдите любую подходящую очередь студентов. Гарантируется, что такая очередь всегда существует.
4 2 2 3 2 4 7 1 2 5
xyxx
Пояснение к примеру и ответу xyxx:
Значит мы можем уверенно утверждать, что xyxx — одна из возможный очередей. Также существуют решения yxyx и yxxy. Вы можете вывести любой из них.
Диас недавно начал изучать машинное обучение. Особенно сильно ему понравилась сфера распознавания различных паттернов в фотографиях. Недавно ему пришлось работать с распознаванием так называемых алмазов с некоторыми свойствами. Алмазы, по своей сути, имеют форму обычной квадратной рамки, повернутой на $$$45$$$ градусов.
Диас справился со своей задачей в машинном обучении. Теперь ему стало интересно, а смогут ли решить эту задачу наши любимые ACM-щики? Поскольку в машинном обучении люди работают с настоящими фотографиями у которых могут быть разные неровности и размытости, Диас адаптировал свою задачу специально для наших ребят: они могут считать, что фотография является бинарной матрицей размера $$$n \times n$$$. Строки и столбцы матрицы пронумерованы от $$$1$$$ до $$$n$$$.
Определим понятие алмазов в данной задаче более подробно. Каждый алмаз можно описать тремя положительными целыми числами — его центром $$$(p, q)$$$ и его радиусом $$$r$$$. Все клетки $$$(x, y)$$$, образующие сам алмаз, будут соответствовать свойству $$$|x - p| + |y - q| = r$$$. На картинке ниже приведены алмазы $$$(2, 2, 1)$$$, $$$(4, 3, 1)$$$ и $$$(3, 3, 2)$$$.
Диас попросил ACM-щиков посчитать общее количество алмазов на фотографии со следующими свойствами:
Вы были одним из тех ребят, которые услышали эту задачу напрямую из уст Диаса. Сможете её решить?
В первой входного файла дано одно положительное целое число $$$n$$$ — размер матрицы ($$$4 \le n \le 5200$$$). Гарантируется, что $$$n$$$ нацело делится на $$$4$$$.
Далее следует описание матрицы. В каждой из $$$n$$$ следующих строк следуют по $$$\frac{n}{4}$$$ однозначных числа шестнадцатеричной системы счисления (то есть, эти числа могут задаваться либо как цифры от $$$0$$$ до $$$9$$$, либо как прописные латинские буквы от $$$A$$$ до $$$F$$$). Двоичная запись каждого из этих чисел задаёт очередные $$$4$$$ элемента матрицы в текущей строке. Например, если число равно $$$B$$$, то очередные четыре элемента матрицы равны 1011, а если число равно $$$5$$$, то очередные четыре элемента матрицы равны 0101.
Элементы в каждой строке задаются без пробелов.
Настоятельно рекомендуем использовать быстрые методы ввода/вывода данных.
Выведите одно единственное целое число — количество алмазов в фотографии.
4 7 D F 7
2
8 10 28 54 AA 54 28 10 00
14
Пояснение к первому примеру:
Бинарная матрица во втором примере с двумя выделенными алмазами:
В SDU есть давняя традиция – собираться по выходным в университете и устраивать киномарафоны. Абу и Арс опять не могут решить какие фильмы выбрать для просмотра. Так как они устали от классического камень, ножницы, бумага, то они придумали новую интересную игру, которая разрешила бы их спор.
У игроков есть дерево из $$$n$$$ вершин и $$$n-1$$$ ребер. На одной из вершин дерева стоит фишка. А также есть список из $$$k$$$ запрещенных вершин. За свой ход Абу может удалить любое ребро из дерева. За свой ход Арс может передвинуть фишку в соседнюю вершину по любому не удаленному ребру или остаться на той же вершине. Первым ходит Абу. Игра заканчивается когда в дереве больше не осталось ребер. Арс выигрывает если в какой-то момент фишка оказалась на запрещенной вершине.
Вы заметили, что при определенных начальных условиях вы можете определить победителя. Определите кто выигрывает при оптимальной игре обоих игроков для каждой изначальной позиции фишки от $$$1$$$ до $$$n$$$.
В первой строке заданы два целых числа $$$n$$$ и $$$k$$$ $$$(2 \le n \le 200000; 1 \le k \le n)$$$ - количество вершин в дереве и количество запрещенных вершин.
В следующих $$$n-1$$$ строках заданы два целых числа $$$u_i$$$ и $$$v_i$$$ $$$(1 \le u_i, v_i \le n; u_i \neq v_i)$$$ — вершины дерева, соединенные $$$i$$$-м ребром. Все заданные ребра различны и образуют дерево.
В последней строке заданы $$$k$$$ различных чисел через пробел — номера запрещенных вершин в графе.
Выведите $$$n$$$ строк, где $$$i$$$-я строка будет ответом для графа в котором фишка изначально находится на $$$i$$$ вершине. В случае победы Абу, выведите строку «Abu». Иначе выведите «Ars» (без кавычек).
8 3 4 3 5 4 2 5 1 5 6 5 7 5 7 8 1 3 8
Ars Abu Ars Abu Abu Abu Abu Ars
10 5 1 6 8 6 4 3 10 9 10 2 5 6 2 1 4 6 2 7 3 1 5 2 10
Ars Ars Ars Ars Ars Ars Abu Abu Abu Ars
Разберем первый пример. Если изначально фишка будет находиться на вершине $$$2$$$, дерево будет выглядеть следующим образом (красным обозначены запрещенные вершины):
На первом ходу Абу удаляет ребро, соединяющее вершины $$$1$$$ и $$$5$$$. После хода Абу, Арс двигает фишку на вершину $$$5$$$.
На третьем ходу Абу удаляет ребро, соединяющее вершины $$$3$$$ и $$$4$$$. После хода Абу, Арс двигает фишку на вершину $$$7$$$.
На пятом ходу Абу удаляет ребро, соединяющее вершины $$$7$$$ и $$$8$$$. Так как Абу уже удалил все ребра, ведущие к запрещенным вершинам, Арс уже никак не сможет победить. Побеждает Абу.
Вот и настал тот самый день когда Абу впервые переступил порог Самого Дружного Университета (СДУ) распахнув перед собой двери к бесценным знаниям. С первых же дней в стенах нового для себя заведения он начал всех удивлять своими знаниями и навыками в программировании. Все сокурсники завидовали ему, а учителя гордились что к ним в универ поступил такой сильный студент и видели в нём нового Илона Маска.
А тем временем Абу, вместо того чтобы учиться ещё усерднее пошел по пути лентяя. Пока он разгуливал уроки лучик его звезды тихо угасал, и не прошло и семестра как все уже догнали его по учёбе. Вдобавок ко всему этому, во время сессии он сильно затруднялся и с первого же раза схватил ретейк и свалился со стипендии. Теперь перед ним стоит непростая задача — найти выход и оплатить за ретейк самому, потому что он не хотел разглашать свой триумфальный провал своим родителям.
Абу, идя домой, весь опустошённый, по дороге увидел группу людей, собравшихся в большую кучу. А посередине увидел стоявшего в классическом костюме человека похожего на профессора.
- Слушайте, студенты! Того, кто решит мою задачу первым, я возьму к себе в ассистенты и буду выплачивать ему большую сумму! – громко огласил профессор. Абу, с загоревшимися глазами, умчался в эту толпу, чтобы попытать своё счастье. В оригинальной формулировке задача звучала так:
У вас есть перестановка $$$p$$$ целых чисел от $$$1$$$ до $$$n$$$. А также у вас есть $$$m$$$ пар целых чисел $$$(a_i, b_i)$$$. За одну операцию вам разрешено выбрать произвольное целое число $$$i$$$ ($$$1 \le i \le m$$$) и сделать операцию swap(p[a[i]], p[b[i]]). Другими словами, вы меняете местами значения на позициях $$$a_i$$$ и $$$b_i$$$.
Есть одно важное ограничение — четность суммарного количества использований $$$i$$$-й пары во всех ваших операциях должна быть в точности равна $$$c_i$$$.
Вам нужно сделать $$$p$$$ лексикографически минимальным за не более $$$600000$$$ операций, при этом соблюдая все ограничения. Абу надеется на вашу помощь. На кону стоит его ретейк!
В первой строке входного файла даны два целых числа $$$n$$$ и $$$m$$$ — размер перестановки и кол-во пар ($$$2 \le n \le 1000$$$, $$$1 \le m \le 10000$$$).
Во второй строке входного файла даны $$$n$$$ целых чисел $$$p_1$$$, ..., $$$p_n$$$ разделенные пробелами ($$$1 \le p_i \le n$$$, $$$p_i \neq p_j$$$ если $$$i \neq j$$$).
В следующих $$$m$$$ строках даны тройки целых чисел $$$a_i$$$, $$$b_i$$$, $$$c_i$$$ — пара и требуемая четность количества её использований ($$$1 \le a_i, b_i \le n$$$, $$$a_i \neq b_i$$$, $$$0 \le c_i \le 1$$$).
В первой строке выведите $$$p_1$$$, ..., $$$p_n$$$ после всех ваших изменений. Она должна быть лексикографически минимальной.
Во второй строке выведите $$$k$$$ — кол-во использованных вами операций ($$$0 \le k \le 600000$$$).
В следующей строке выведите ровно $$$k$$$ целых чисел $$$q_1$$$, ..., $$$q_k$$$ ($$$1 \le q_i \le m$$$). $$$q_i$$$ должно обозначать номер пары, которую вы использовали для $$$i$$$-й операции. Если $$$k = 0$$$, ничего выводить не надо.
4 6 4 2 3 1 1 2 1 2 4 1 3 4 1 2 3 1 1 4 1 1 3 1
1 2 4 3 6 4 5 6 3 2 1
4 10 4 2 1 3 2 4 1 1 3 0 4 1 0 3 4 1 2 1 0 3 4 0 1 2 1 1 3 1 2 4 1 1 3 1
1 2 3 4 6 1 8 7 9 4 10
Это интерактивная задача.
Корпус Suleyman Demirel University состоит из $$$n$$$ учебных кабинетов, расположенных в один ряд и пронумерованных от $$$1$$$ до $$$n$$$ слева направо. Новые перваши уже этой осенью поступят в наш чудесный универ, поэтому учитель программирования придумал классную задачку чтобы проверить их логику.
Ровно два кабинета из $$$n$$$ является кабинетами программирования. Скажем, что их номера — $$$a$$$ и $$$b$$$. Поскольку перваши в самом начале не будут знать номера этих кабинетов, учитель решил их загадать.
Все перваши подойдут к произвольному кабинету под номером $$$x$$$. Учитель, сидящий в этом кабинете, подскажет студентам сумму расстояний до кабинетов программирования. Более формально, он скажет им значение $$$|x - a| + |x - b|$$$. Затем перваши снова подойдут к произвольному кабинету $$$y$$$ и процесс будет повторяться до тех пор, пока перваши не будут уверены что нашли оба $$$a$$$ и $$$b$$$. Вполне возможно, что они в процессе уже посетят кабинет программирования, но хитрые учителя не станут это им раскрывать.
Алмас находится среди этих первашей. Он принял на себя роль мозга этой группы. Его цель — помочь своим одногруппникам найти $$$a$$$ и $$$b$$$ посетив как можно меньше кабинетов. Он уверен, что это возможно сделать за не более чем $$$50$$$ посещений. Помогите ему!
Взаимодействие начинается с чтения единственного целого числа $$$n$$$ — общего количества кабинетов в университете ($$$2 \le n \le 10^9$$$).
Далее программа будет отвечать на ваши запросы. Каждый запрос необходимо задавать в формате ? x ($$$1 \le x \le 10^9$$$). Перваши посетят кабинет под номером $$$x$$$. Затем нужно прочитать ответ учителя из стандартного ввода. Если учитель ответит $$$−1$$$ вместо корректного ответа, это означает, что перваши превысили $$$50$$$ посещений, или вы сделали некорректный запрос. Немедленно завершитесь после получения $$$−1$$$, чтобы получить вердикт Wrong answer. Иначе, вы можете получить произвольный вердикт, потому что ваше решение будет продолжать читать из закрытого потока.
Если вы угадали оба кабинета, выведите ответ в формате ! a b и завершите программу ($$$1 \le a \lt b \le n$$$).
После вывода запроса или ответа не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
6 2 4 6 4 2 2
? 3 ? 1 ? 6 ? 5 ? 2 ? 4 ! 2 4
Диас и Арыстан интересуются спортивным программированием и хотят попасть в ACM Club нашего чудесного SDU. Для этого они сходили на выставку клубов и выяснили, что туда попадают только те, кто готовят первоклассный маклюбе и способны решить одну непростую задачу. Диас и Арыстан не могли похвастаться кулинарными навыками и решили сначала научиться готовить, а вас попросили помочь с решением задачи, условие которой описано ниже.
Вам дан массив $$$a$$$ длины $$$n$$$ состоящий из положительных целых чисел. Обозначим $$$f(a)$$$ как массив $$$b$$$ длины $$$n-1$$$, где $$$b_i = gcd(a_1 + \dots + a_i, a_{i+1} + \dots + a_n)$$$. Будем применять операцию $$$a = f(a)$$$ до тех пор, пока размер массива $$$a$$$ не станет равным $$$1$$$. Выведите единственное оставшееся число в массиве.
Здесь $$$gcd(x, y)$$$ означает наибольший общий делитель (НОД) чисел $$$x$$$ и $$$y$$$.
В первой строке задано одно целое число $$$n$$$ – длина исходного массива ($$$2 \le n \le 10^{5}$$$).
Во второй строке набора записаны $$$n$$$ целых чисел $$$a_1$$$, $$$a_2$$$, ..., $$$a_n$$$ — элементы исходного массива $$$a$$$ ($$$1 \le a_i \le 10^9$$$).
Выведите одно целое число — единственное оставшееся число в массиве.
3 4 6 8
2
Пояснение для первого примера: