Уральская командная олимпиада по программированию 2024
A. Билли Бонс и монеты
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Ром, свиная грудинка и яичница — вот всё, что мне нужно!
— Билли Бонс

Вечер. Трактир «Адмирал Бенбоу». Полумрак. Билли Бонс сидит у камина, попивая ром и разглядывая обратную сторону карты сокровищ. Там написано натуральное число $$$x$$$.

С помощью этого числа можно узнать количество монет, спрятанных на острове. Для этого нужно найти минимальное число, большее $$$x$$$, которое удовлетворяет следующему условию: любая цифра из этого числа должна отличаться от цифры, которая находится в том же разряде числа $$$x$$$. Например, если $$$x = 13$$$, то число 18 не удовлетворяет упомянутому условию, так как у этих двух чисел совпадает первая цифра.

Помогите Билли Бонсу найти количество монет в сундуке. В награду он поделится с вами сокровищами.

Картинка к первому примеру.
Входные данные

В первой строке вводится натуральное число $$$x$$$ — число, записанное на обратной стороне карты сокровищ ($$$1 \le x \le 10^{18}$$$).

Выходные данные

Выведите единственное натуральное число — количество монет, спрятанных на острове сокровищ.

Примеры
Входные данные
1134
Выходные данные
2000
Входные данные
9
Выходные данные
10

B. Шприцы
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Ладно, попытаемся спасти эту трижды никому не нужную жизнь.
— Доктор Ливси

Доктор Ливси собирается в экспедицию за сокровищами. Так как он единственный доктор в команде, он первым делом хочет собрать необходимые медикаменты. У доктора есть много шприцов. Каждый шприц представляет собой прямоугольник $$$1\times k$$$. А также есть большая коллекция сумок, одну из которых он хочет взять с собой. В его коллекции есть сумки всех возможных размеров $$$x\times y$$$, где $$$1 \le x, y \le n$$$. При этом Доктор Ливси хочет взять такую сумку, что в нее можно будет положить шприцы на дно сумки параллельно ее сторонам одним слоем без пересечений так, чтобы дно сумки было полностью покрыто. Дно сумки размера $$$x\times y$$$ представляет собой прямоугольник размера $$$x\times y$$$. Шприцы можно располагать как горизонтально, так и вертикально. Помогите Доктору Ливси понять, сколько сумок из его коллекции подходят для экспедиции.

Входные данные

В первой строке вводится целое число $$$n$$$ – наибольший размер сумок в коллекции ($$$1 \leq n \leq 10^{9}$$$).

Во второй строке вводится целое число $$$k$$$ – длина шприца ($$$1 \leq k \leq 10^{9}$$$).

Выходные данные

Выведите единственное число – количество сумок в коллекции Доктора Ливси, которые подходят для экспедиции.

Примеры
Входные данные
5
2
Выходные данные
16
Входные данные
3
1
Выходные данные
9
Входные данные
4
4
Выходные данные
7
Входные данные
5
3
Выходные данные
9
Примечание

Важно заметить, что сумки размером $$$a\times b$$$ и $$$b \times a$$$ считаются различными.

В первом примере подходят сумки размером $$$1 \times 2, 1 \times 4, 2 \times 1, 2 \times 2, 2 \times 3, 2 \times 4, 2 \times 5$$$, $$$3 \times 2, 3 \times 4, 4 \times 1, 4 \times 2, 4 \times 3, 4 \times 4, 4 \times 5, 5 \times 2, 5 \times 4$$$  — всего 16 штук.

Во втором примере можно заполнить любую сумку, поэтому ответ $$$9$$$

C. Битый ром
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Пятнадцать человек на сундук мертвеца,

Йо-хо-хо, и бутылка рома.

Пей, и дьявол тебя доведет до конца.

Йо-хо-хо, и бутылка рома.

Гротеск — Песня о вреде пьянства

В трактир «Адмирал Бенбоу» привезли новую партию рома — всего $$$2^{n} - 1$$$ бутылок, и каждая из них имеет свой номер от 1 до $$$2^{n} - 1$$$. Кроме того, в трактире есть $$$2^{n} - 1$$$ коробок, также пронумерованных от $$$1$$$ до $$$2^{n} - 1$$$.

Джимми Гоккинс хочет разложить все бутылки рома по коробкам, при этом соблюдая необычное правило: если он кладет бутылку с номером $$$k$$$ в коробку с тем же номером $$$k$$$, то появляется дополнительная бутылка, чей номер равен количеству единиц в двоичной записи числа $$$k$$$. Однако если это количество единиц совпадает с самим $$$k$$$, то новая бутылка не появляется.

Джимми решил, что будет класть бутылку с номером $$$k$$$ только в коробку с номером $$$k$$$. Также ему стало интересно, сколько бутылок рома окажется в каждой из коробок с номерами $$$a_i$$$. Помогите Джимми узнать ответ!

Входные данные

В первой строке вводится целое число $$$n$$$ $$$(1 \leq n \leq 60)$$$.

Во второй строке вводится целое число $$$q$$$ — количество коробок, которые интересуют Джимми $$$(1 \leq q \leq 10 ^ 5)$$$.

В следующей строке идут $$$q$$$ целых чисел $$$a_i$$$ — номера коробок, которые интересны Джимми $$$(1 \leq i \leq q, 1 \leq a_i \leq 2 ^ n - 1)$$$.

Выходные данные

Выведите в одной строке $$$q$$$ чисел — количество бутылок рома в коробках с номерами $$$a_i$$$.

Пример
Входные данные
5
2
8 4
Выходные данные
1 6
Примечание

В коробку с номером $$$8$$$ попадёт одна бутылка из начального набора. В коробку с номером $$$4$$$ также попадёт бутылка из начального набора и еще пять дополнительных, полученных из коробок с номерами: $$$30=11110_2$$$, $$$29=11101_2$$$, $$$27=11011_2$$$, $$$23=10111_2$$$, $$$15=1111_2$$$

Statement is not available in English language
Statement is not available in English language
F. Хорошее настроение
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Ахахахахахахахахахахахахахахахахахахах
— Доктор Ливси

Доктор Ливси заботится не только о физическом, но и о психологическом состоянии команды. Чтобы экипаж чувствовал себя счастливее, доктор решил снизить уровень негатива. На корабле находится $$$n$$$ человек, и настроение каждого можно описать целым числом $$$a_i$$$.

Доктор Ливси пока не обладает достаточным опытом, поэтому он может улучшить настроение только одной группе людей. Выбрав подотрезок людей, доктор изменяет их настроение на противоположное. Формально это означает, что он выбирает два числа $$$1 \le l \le r \le n$$$ и меняет знаки всех значений $$$a_i$$$ на отрезке $$$[l; r]$$$.

Эффективность команды определяется настроением самого несчастного человека, поэтому капитан поставил перед доктором задачу: выбрать такой отрезок людей, чтобы минимальное настроение среди всех членов команды стало как можно выше.

Входные данные

В первой строке входных данных вводится натуральное число $$$n$$$ — количество членов команды $$$(1 \le n \le 10^5)$$$.

Во второй строке входных данных вводится массив целых чисел $$$a$$$ длины $$$n$$$ — настроения каждого члена в команде, где $$$a_i$$$ — настроение $$$i$$$-го человека $$$(-10^9 \le a_i \le 10^9$$$). Гарантируется, что существует $$$a_i \lt 0$$$.

Выходные данные

Выведите одно число — наибольшее возможное значение минимального настроения в команде после изменения.

Примеры
Входные данные
5
-1 3 -2 -4 5
Выходные данные
-1
Входные данные
4
2 -4 -3 -10
Выходные данные
2
Примечание

В первом примере можно выбрать отрезок $$$[3; 4]$$$, тогда настроения людей будут $$$[-1, 3, 2, 4, 5]$$$.

G. Любимое число Флинта
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Я буду драться за двоих! Нет, за четверых! За двенадцать! За тр...
— Капитан Смоллетт

Джон Сильвер с командой пиратов во время поиска места, где зарыты сокровища, наткнулись на очередную загадку Флинта. На карте написано, что им нужно пройти $$$d$$$ шагов на север, чтобы прийти на место, где спрятан клад. Однако само число $$$d$$$ пиратам неизвестно, сказано лишь то, что это было любимое число капитана Флинта.

Джон Сильвер долго плавал с капитаном Флинтом и очень хорошо его знал. Каждый раз, когда капитан пересчитывал свои богатства, он высыпал все золотые монеты на стол и складывал их в кучки по $$$d$$$, чтобы было удобнее считать. Все лишние монеты, которых не хватало для очередной кучки, он раздавал команде. Именно из-за частого подсчета денег число $$$d$$$ и стало любимым для Флинта.

В день, когда Флинт с командой прибыли на остров, прежде чем спрятать сокровища, капитан, как обычно, решил их пересчитать. Затем взял $$$n$$$ сундуков и начал складывать в них деньги. Он по очереди брал со стола кучку из $$$d$$$ монет и клал ее всю в один из сундуков. Однако, когда на столе осталась всего одна кучка монет, внезапно несколько членов команды напали на Флинта с целью забрать все сокровища себе. Разумеется, они недооценили опыт капитана и сами пали в бою с ним. Флинт же осознал, что нужно торопиться, в спешке собрал оставшиеся монеты со стола и бросил их в 2 ближайших к нему сундука, не обращая внимания, сколько монет из кучки оказалось в каждом из них. Схватив свои сокровища, он отправился их закапывать.

Все это Джон Сильвер видел своими глазами, но пойти за Флинтом и узнать, где он хочет спрятать деньги, было опасно. Зато Сильвер смог запомнить, сколько монет было в каждом сундуке. Но он тогда не знал, что самой ценной информацией в тот момент было именно число $$$d$$$ — размер кучек с монетами. И теперь Джон никак не может его вспомнить. Помогите ему определить наибольшее возможное число $$$d$$$, зная, сколько монет было в каждом сундуке.

Входные данные

В первой строке вводится целое число $$$n$$$ – количество сундуков с деньгами ($$$2 \leq n \leq 10^5$$$).

Во второй строке через пробел вводятся $$$n$$$ целых чисел $$$a_i$$$ – количество монет в каждом из сундуков ($$$0 \leq a_i \leq 10^{12}$$$).

Гарантируется, что у Джона была хотя бы $$$1$$$ монета.

Выходные данные

Выведите единственное число – наибольшее возможное значение любимого числа Флинта – $$$d$$$.

Примеры
Входные данные
4
5 8 7 100
Выходные данные
5
Входные данные
5
9 4 6 5 12
Выходные данные
3
Входные данные
6
4 8 16 24 12 40
Выходные данные
8
Примечание

В первом примере при $$$d = 5$$$ Флинт кинул бы 20 кучек монет в последний сундук, по 1 кучке в первый, второй и третий. А оставшуюся кучку кинул в сундуки 2 и 3. В третий сундук попало 2 монеты, во второй – 3.

Во втором примере в сундуки положили 3, 1, 2, 1 и 4 кучек монет соответственно. А последнюю кучку разделили между 2 и 4 сундуком по 1 и 2 монеты соответственно.

H. Путешествие к кладу
ограничение по времени на тест
1.5 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Хоть я и капитан, но я не спрашиваю о цели нашей экспедиции. Однако! Даже самый последний матрос знает, что мы едем искать сокровища. Не нравится мне всё это! Сэр!
— Капитан Смоллетт

На таинственном острове капитан Флинт оставил карту сокровищ, на которой записаны подсказки в виде последовательности чисел — массив $$$a$$$. У пиратов есть стартовое значение $$$x$$$, которое им нужно преобразовать, следуя всем шагам на карте, чтобы добраться до сокровища.

Для каждого значения $$$x$$$, которое они выбирают, пираты идут по массиву $$$a$$$ от начала до конца и выполняют следующие действия для каждого элемента массива:

  1. Если текущее значение $$$x \lt 0$$$, они добавляют к $$$x$$$ текущий элемент массива.
  2. Если же $$$x \ge 0$$$, они вычитают из $$$x$$$ текущий элемент массива.

Таким образом, в конце маршрута значение $$$x$$$ становится новым числом, указывающим на местоположение клада.

К сожалению, пираты оказались очень слабы в математике (хотя бутылки рома считают отлично), поэтому они попросили у вас помощи в поиске клада. У них есть $$$q$$$ чисел, возможные стартовые значения числа $$$x$$$. Вам необходимо для каждого из этих чисел вывести число, которое получается из него после действий, приведенных выше.

Входные данные

В первой строке вводится 2 целых числа $$$n$$$, $$$q$$$ — количество чисел в массиве $$$a$$$ и количество возможных начальных значений $$$(1 \le n, q, \le 10^6)$$$.

Во второй строке через пробел вводятся $$$n$$$ целых чисел, задающих массив $$$a$$$. $$$(|a_i| \le 10^6)$$$.

В следующих $$$q$$$ строках вводятся по одному целому числу $$$x_i$$$ — возможные стартовые значения. ($$$|x_i| \le 10^6$$$).

Выходные данные

Выведите $$$q$$$ строк. В i-й строке выведите единственное число — число, которое получилось после выполнения всех действий к числу $$$x_i$$$.

Примеры
Входные данные
3 2
3 1 2
4
-3
Выходные данные
-2
1
Входные данные
3 4
2 1 4
10
-5
2
6
Выходные данные
3
2
3
-1

I. А ну-ка, руки вверх!
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Дьявол! Прошло уже больше часа... Становится скучновато.
— Капитан Смоллетт

Капитан Смоллетт находится в форте с координатами $$$(0, 0)$$$. Из форта торчат $$$n$$$ ружей, обозначенных векторами $$$(x_i, y_i)$$$. Неподалёку в точке с координатами $$$(a, b)$$$ находится Джон Сильвер, который является кругом радиуса $$$r$$$.

Капитан Смоллетт по своему усмотрению повернёт форт на некоторый угол $$$\alpha$$$ ($$$0^{\circ} \leq \alpha \lt 360^{\circ}$$$) против часовой стрелки, вместе с фортом повернутся все ружья. Затем он $$$k$$$ раз выстрелит из какого-то ружья, выбрав его равновероятно. Во время каждого выстрела ружьё выбирается независимо от всех предыдущих выстрелов, ружья могут повторяться. Джон Сильвер будет убит, если хотя бы один выстрел попадёт в него. Попадания в границу круга тоже считаются.

Капитана волнуют $$$q$$$ вопросов. Вопрос номер $$$i$$$ звучит так: на какой наименьший угол $$$\alpha_i$$$ нужно повернуть форт, чтобы поразить Джона Сильвера с вероятностью хотя бы $$$p_i$$$.

Найдите ответы на все вопросы капитана.

Входные данные

Первая строка содержит три целых числа $$$n, k, q$$$ — количество ружей, количество выстрелов и количество вопросов ($$$1 \leq n \leq 10^5, 1 \leq k \leq 10, 1 \leq q \leq 10^5$$$).

Следующие $$$n$$$ строк содержат два целых числа $$$x_i, y_i$$$ — координаты вектора, обозначающего $$$i$$$-е ружьё ($$$-10^9 \leq x_i, y_i \leq 10^9, x_i^2 + y_i^2 \gt 0$$$ ). Гарантируется, что никакие два ружья не смотрят в одном направлении.

Следующая строка содержит целые числа $$$a, b, r$$$ — координаты Джона Сильвера и его радиус ($$$-10^9 \leq a, b \leq 10^9, 1 \leq r \leq 10^9$$$). Гарантируется, что Джон Сильвер не пересекает ни одно ружьё.

Следующие $$$q$$$ строк содержат вещественные числа $$$p_i$$$ — желаемые вероятности из запросов ($$$0 \leq p_i \leq 1$$$, число $$$p_i$$$ содержит не более $$$5$$$ знаков после запятой).

Выходные данные

В $$$q$$$ строках выведите по одному вещественному числу $$$\alpha_i$$$ — ответ на $$$i$$$-й вопрос ($$$0^{\circ} \leq \alpha_i \lt 360^{\circ}$$$). Если поразить Джона Сильвера с требуемой вероятностью невозможно, то выведите $$$-1$$$.

Ваш ответ будет считаться правильным, если его абсолютная или относительная погрешность не превосходит $$$10^{-3}$$$. Формально, пусть ваш ответ будет $$$a$$$, а ответ жюри будет $$$b$$$. Ваш ответ будет принят тогда и только тогда, когда $$$\frac{|a-b|}{max(1, \;|b|)} \leq 10^{-3}$$$.

Пример
Входные данные
6 2 5
5 -5
3 0
-3 -2
-3 -1
-3 0
-4 -1
4 2 2
0.3 0.5 0.75 0.8 0.9
Выходные данные
0
45
165.9637565321
180
-1
Примечание

Ниже приведена иллюстрация к первому примеру. Обратите внимание, что после поворота форта ружья могут проходить через Джона Сильвера, при этом выстрел из них всё ещё будет считаться поражающим.

J. Они заряжают пушку... ЗАЧЕМ?!
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Отдать кормовые и носовые!!! Поднять якорь! Гафеля-гарделя, топсель-шкота, перетяжка!!! П-паруса па-а-а-адня-ять!!! Полный!.. Что?! А, да! Полный вперёд!!!
— Капитан Смоллетт

Испаньола наконец-то приблизилась к Острову Сокровищ! Шлюпка пиратов уже отправилась в сторону острова и отплыла от корабля на $$$D$$$ футов. Шлюпка Джима только что спустилась на воду и находится в одной точке с кораблём.

Следующие $$$n$$$ секунд обе лодки будут двигаться прямолинейно в сторону острова. Джим точно знает, что в секунду номер $$$i$$$ шлюпка пиратов сдвинется в сторону острова на $$$b_i$$$ футов. При этом шлюпка Джима в секунду номер $$$i$$$ может сдвинуться в сторону острова на любое целое число футов от $$$0$$$ до $$$a_i$$$ по усмотрению Джима. Считайте, что в течение каждой секунды обе лодки движутся равномерно.

Джим хочет обогнать шлюпку пиратов как можно раньше так, чтобы после этого пираты никогда не догнали Джима. Формально, пусть $$$t$$$ ($$$1 \leq t \leq n$$$) — наименьший номер секунды, такой, что в её конце шлюпка Джима была строго ближе к острову, чем шлюпка пиратов. Джим хочет, чтобы начиная с этого момента и вплоть до конца $$$n$$$-й секунды его шлюпка была строго ближе к острову, чем шлюпка пиратов. Из всех возможных $$$t$$$ он хочет выбрать наименьшее.

Однако Джим точно не знает, чему равно расстояние $$$D$$$. У него есть $$$q$$$ предположений $$$d_1, d_2, \ldots, d_q$$$ чему равно $$$D$$$. Он хочет знать наименьшее возможное число $$$t$$$ для каждого своего предположения.

Входные данные

В первой строке содержатся два целых числа $$$n$$$ и $$$q$$$ — количество секунд и количество предположений Джима ($$$1 \leq n \leq 10^5, 1 \leq q \leq 10^5$$$).

Во второй строке содержатся $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ — максимальные возможные расстояния, которые может проплыть шлюпка Джима в каждую из секунд ($$$0 \leq a_i \leq 10^9$$$).

В третьей строке содержатся $$$n$$$ целых чисел $$$b_1, b_2, \ldots, b_n$$$ — расстояния, которые проплывёт шлюпка пиратов ($$$0 \leq b_i \leq 10^9$$$).

В четвёртой строке содержатся $$$q$$$ целых чисел $$$d_1, d_2, \ldots, d_q$$$ — предполагаемые изначальные расстояния лодки пиратов до корабля ($$$1 \leq d_i \leq 10^9$$$).

Выходные данные

В $$$q$$$ строках выведите одно целое число — ответ на каждое предположение Джима.

Если Джим сможет обогнать пиратов в конце секунды $$$t$$$ так, что пираты никогда его не догонят, то выведите число $$$t$$$ ($$$1 \leq t \leq n$$$). Из всех подходящих чисел $$$t$$$ выведите наименьшее. Если план Джима выполнить невозможно, выведите $$$-1$$$.

Примеры
Входные данные
10 10
7 4 7 0 5 6 4 4 5 4
5 3 5 1 2 3 3 7 2 0
1 2 3 4 5 6 7 8 14 15
Выходные данные
1
2
3
5
5
5
6
10
10
-1
Входные данные
1 4
4
1
1 2 3 4
Выходные данные
1
1
-1
-1

K. Нужно больше золота
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Деньги-деньги, дребеденьги! Позабыв покой и лень, Делай деньги, делай деньги, А остальное всё дре-бе-бедень!
— Черный Пес и Слепой Пью, песня

Сколько же путешествий повидал в своей жизни Слепой Пью... Сколько же золотых монет он держал в руках... Сколько же раз он попадал в переделки... Нет, нельзя просто так взять и закончить карьеру пирата! Поэтому Слепой Пью снова собрал команду чокнутых моряков и отправился на поиски новых приключений.

В пиратском мире существует $$$n$$$ островов с сокровищами. Остров под номером $$$i$$$ хранит сундук с $$$a_i$$$ пиастрами. Между островами существует $$$m$$$ морских путей, которые позволяют перемещаться между ними. Острова и пути образуют неориентированный граф, где каждый морской путь соединяет два различных острова.

Популярность острова определяется количеством морских путей, соединяющих его с другими островами. Путешествие — это последовательность островов, такая что между каждыми двумя последовательными островами есть морской путь, а популярность каждого следующего острова строго больше популярности предыдущего. Длина путешествия — это количество морских путей в нём.

В начале Слепой Пью и его команда находятся на острове с номером 1, где они уже нашли сундук с $$$a_1$$$ пиастрами. Пираты могут начать любое путешествие с текущего острова, но останавливаются только на последнем острове путешествия и открывают сундук там (сундуки промежуточных островов остаются нетронутыми). Все золото Пью забирает к себе в карман. Каждое новое путешествие начинается с острова, на котором закончилось предыдущее.

Каждое путешествие требует оплаты команде. Если длина путешествия равна $$$i$$$, то команда потребует $$$b_i$$$ пиастров за него. Пью выплачивает команде единовременно всю сумму за все путешествия в конце последнего. Если Пью и его команда не совершают ни одного путешествия, то Пью не платит своей команде ничего.

Слепой Пью хочет заработать как можно больше пиастров, совершив несколько путешествий (возможно, ни одного). Помогите ему найти максимальное количество пиастров, которое он сможет заработать.

Пиастры. Фото в цвете.
Входные данные

В первой строке вводятся два числа $$$n$$$ и $$$m$$$ — количество островов и количество морских путей соответственно ($$$2 \leq n \leq 10^5$$$, $$$1 \leq m \leq 10^5$$$).

Во второй строке вводится последовательность из $$$n$$$ чисел $$$a_1, a_2, \dots, a_n$$$, где $$$a_i$$$ — количество пиастров на острове с номером $$$i$$$ ($$$1 \leq a_i \leq 10^9$$$).

В третьей строке вводится последовательность из $$$n - 1$$$ чисел $$$b_1, b_2, \dots, b_{n-1}$$$, где $$$b_i$$$ — стоимость путешествия длины $$$i$$$ ($$$1 \leq b_i \leq 10^9$$$).

В следующих $$$m$$$ строках содержится по два числа $$$u$$$ и $$$v$$$ — номера островов, между которыми существует морской путь ($$$1 \leq u, v \leq n$$$, $$$u \neq v$$$).

Гарантируется, что между любыми двумя островами существует не более одного морского пути (нет кратных рёбер).

Выходные данные

В выходные данные выведите одно число — максимальное количество пиастров, которое сможет заработать Слепой Пью, совершив несколько путешествий.

Пример
Входные данные
6 10
5 6 8 2 5 7
3 5 2 4 6
1 2
1 3
1 4
2 3
2 4
2 5
3 4
3 6
4 5
4 6
Выходные данные
10
Примечание

В первом примере выгоднее всего будет совершить одно путешествие длиной 1 на остров 3. В этом случае Пью получит $$$(5 + 8) - 3 = 10$$$ пиастров.

L. Мне не нравятся эти матросы!
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Мне не нравится эта экспедиция! Мне не нравятся эти матросы! И вообще... Что?! Да! Нет, мне вообще ничего не нравится, сэр!
— Капитан Смоллетт

Экспедиция за сокровищами началась, но Капитану Смолетту ничего не нравится. Особенно матросы.

Всего на борту есть $$$n$$$ матросов, у каждого из них есть своя роль. Роль $$$i$$$-го матроса описывается натуральным числом $$$a_i$$$. Экспедиция будет длиться $$$q$$$ дней, и в начале каждого дня Капитан Смолетт собирается менять роль ровно одного матроса. После этого, к концу дня капитан Смолетт оценивает свою команду и решает, какая из ролей самая важная, но делает он это не совсем обычным образом.

Вместо того чтобы просто выбирать самую частую роль, капитан ищет такую роль $$$x$$$, чтобы количество подотрезков массива ролей $$$a$$$, не содержащих роль $$$x$$$, было как можно меньше. Капитана Смолетта интересует, какое минимальное количество подотрезков массива ролей $$$a$$$ не содержат роль $$$x$$$. Помогите капитану посчитать это значение.

Входные данные

В первой строке вводится два натуральных числа $$$n$$$ и $$$q$$$ — количество матросов и количество дней экспедиции соответственно ($$$1 \leq n, q \leq 10^5$$$).

Во второй строке вводится последовательность из $$$n$$$ натуральных чисел $$$a_1, a_2, \dots, a_n$$$, где $$$a_i$$$ — роль $$$i$$$-го матроса ($$$1 \leq a_i \leq 10^9$$$).

В следующих $$$q$$$ строках содержится по два числа $$$s$$$ и $$$r$$$ — индекс матроса, чью роль капитан хочет изменить, и новая роль этого матроса ($$$1 \leq s \leq n$$$, $$$1 \leq r \leq 10^9$$$).

Выходные данные

Для каждого из $$$q$$$ дней выведите одно число — минимальное количество подотрезков массива ролей $$$a$$$, не содержащих какую-то конкретную роль $$$x$$$.

Примеры
Входные данные
6 5
1 2 3 1 1 2
3 4
5 4
2 1
3 1
6 1
Выходные данные
4
5
4
3
1
Входные данные
7 4
2 3 2 3 4 2 3
1 4
4 2
6 5
2 1
Выходные данные
5
5
9
9
Примечание

Рассмотрим первый пример.

1) В начале первого дня меняется роль 3-го матроса на 4. Массив ролей выглядит следующим образом: [1, 2, 4, 1, 1, 2]. Минимальное количество подотрезков без роли 1 равно 4.

2) В начале второго дня меняется роль 5-го матроса на 4. Массив ролей выглядит следующим образом: [1, 2, 4, 1, 4, 2]. Минимальное количество подотрезков без роли 4 равно 5. Заметьте, что, например, для первой роли количество подотрезков без неё равно 6.

3) В начале третьего дня меняется роль 2-го матроса на 1. Массив ролей выглядит следующим образом: [1, 1, 4, 1, 4, 2]. Минимальное количество подотрезков без роли 1 равно 4.

4) В начале четвертого дня меняется роль 3-го матроса на 1. Массив ролей выглядит следующим образом: [1, 1, 1, 1, 4, 2]. Минимальное количество подотрезков без роли 1 равно 3.

5) В начале пятого дня меняется роль 6-го матроса на 1. Массив ролей выглядит следующим образом: [1, 1, 1, 1, 4, 1]. Минимальное количество подотрезков без роли 1 равно 1.

M. Детство капитана Флинта
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Так это же карта капитана Флинта!
— Доктор Ливси

Капитан Флинт не зря стал прославленной грозой пиратов. Всё дело в том, что он уже в детстве придумывал планы ограблений, мечтал о том, куда хочет потратить сокровища и какую память о себе хочет оставить. И вот, юный капитан Флинт придумал себе интересную задачку, которую он быстро решил. А сможете ли вы повторить решение грозы 52 морей?

Дано $$$n$$$ островов. Известно, что пираты могут перемещаться напрямую только между $$$m$$$ парами островов (это обусловлено особенностями рельефа — корабль с большим количеством сокровищ в некоторых местах может сесть на дно), при этом известно, что $$$m \lt n$$$. Вот только с годами капитан Флинт стал совсем забывчив и не помнит, между какими именно парами островов мог передвигаться его грозный корабль. Но вот что капитан Флинт помнит — так это то, что для каждой пары островов существовало не более 1 пути, по которому можно добраться от первого острова до второго (иными словами, в графе, в котором вершины — это острова, а рёбра — возможные прямые перемещения между островами, нет циклов).

Так как плавать от одного острова к другому — недешёвое удовольствие, то гроза всех морей хочет оценить минимальное суммарное расстояние между каждой парой островов (если между ними, конечно, существует путь) — пираты хотят как можно меньше средств потратить на топливо, которое уйдёт на поездки между островами. Старина Флинт к этому моменту забыл даже начало условия задачи, поэтому вам придётся помочь тем пиратам, кто ещё хоть что-то помнит, и подсказать им, между какими парами островов им можно перемещаться напрямую, чтобы минимизировать суммарное расстояние между каждой парой островов. Если вы не справитесь, то капитан Флинт вспомнит прошлое и начнёт пальбу по вам, поэтому советуем поторопиться!

Входные данные

Во входной строке вводятся два числа $$$n$$$ и $$$m$$$, разделённые пробелом: $$$n$$$ — количество островов, между которыми плавал капитан Флинт, $$$m$$$ — количество пар островов, между которыми мог проходить корабль пиратов ($$$2 ≤ n ≤ 10^5, 1 ≤ m \lt n$$$).

Выходные данные

Выведите $$$m$$$ строк, в $$$i$$$-й из которых содержатся два числа — $$$a_i, b_i$$$, означающие, что пиратам можно будет напрямую путешествовать между островами $$$a_i$$$ и $$$b_i$$$ ($$$1 \leq a_i, b_i \leq n, a_i \neq b_i$$$). Обратите внимание, что суммарное расстояние между каждой парой островов должно быть минимально.

Обратите внимание на Примечание.

Примеры
Входные данные
4 2
Выходные данные
1 2
3 4
Входные данные
5 3
Выходные данные
1 2
1 3
4 5
Примечание

В первом тестовом примере из условия мы можем «разместить» $$$2$$$ прямых перемещения между островами так, чтобы они не имели общего острова (как это сделано в ответе), и получим сумму расстояний: $$$1 + 1 = 2$$$. Если же они будут иметь общий остров (например, «разместим» прямые перемещения между островами $$$1$$$ и $$$2$$$, а также между островами $$$1$$$ и $$$3$$$), то сумма расстояний будет равна: $$$1 + 1 + 2 = 4$$$ (указаны расстояния между островами $$$1$$$ и $$$2$$$, между островами $$$1$$$ и $$$3$$$, между островами $$$2$$$ и $$$3$$$).

Во втором тестовом примере пиратам можно перемещаться напрямую только между островами $$$1$$$ и $$$2$$$, между островами $$$1$$$ и $$$3$$$, между островами $$$4$$$ и $$$5$$$. Отсюда следует, что сумма расстояний между каждой парой островов равна: $$$1 + 1 + 2 + 1 = 5$$$ (указаны расстояния между островами $$$1$$$ и $$$2$$$, между островами $$$1$$$ и $$$3$$$, между островами $$$2$$$ и $$$3$$$, между островами $$$4$$$ и $$$5$$$).