Всероссийская олимпиада по информатике им. Мстислава Келдыша - 2021
A. Старт олимпиады
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Пандемия охватила все страны мира, и Берляндия не стала исключением. Даже на Всеберляндской олимпиаде по информатике были введены противовирусные меры.

Всего в олимпиаде участвуют $$$n$$$ человек, и, чтобы соблюсти все предписания руководства, жюри олимпиады решило приглашать участников на тур по одному с интервалом $$$x$$$ минут. Таким образом первый участник начнёт тур в момент времени $$$0$$$, второй участник начнёт тур в момент времени $$$x$$$, третий — в момент времени $$$2 \cdot x$$$ и так далее.

Несмотря на разное время начала, длительность тура для каждого участника составляет ровно $$$t$$$ минут. Из-за этого некоторые участники заканчивают писать тур раньше остальных. Когда участник заканчивает писать тур, величина недовольства организацией олимпиады для этого участника равна числу других участников, которые в текущий момент времени еще пишут или только начинают писать тур, но еще не закончили его.

Помогите организаторам олимпиады выяснить, чему равно суммарное недовольство всех участников олимпиады.

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

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

Во второй строке вводится единственное целое число $$$x$$$ ($$$1 \le x \le 2 \cdot 10^9$$$) — интервал в минутах между временами начала тура для участников.

В третей строке вводится единственное целое число $$$t$$$ ($$$1 \le t \le 2 \cdot 10^9$$$) — длительность тура.

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

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

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

В первом примере первый участник начнёт писать тур в момент времени $$$0$$$ и закончит в момент времени $$$5$$$. К этому времени второй и третий участники уже начнут писать тур, поэтому недовольство первого участника будет равно $$$2$$$.

Второй участник начнёт писать в момент времени $$$2$$$ и закончит в момент времени $$$7$$$. К этому моменту третий и четвёртый участники уже начнут писать тур, поэтому недовольство второго будет равно $$$2$$$.

Третий участник начнёт писать тур в момент времени $$$4$$$ и закончит в момент времени $$$9$$$. К этому времени четвёртый участник уже начнёт писать тур, поэтому недовольство третьего будет равно $$$1$$$.

Четвёртый участник начнёт писать тур в момент времени $$$6$$$ и закончит в момент времени $$$11$$$. В момент времени $$$9$$$ уже никто не будет писать тур, поэтому недовольство четвёртого будет равно $$$0$$$.

Таким образом, суммарное недовольство всех участников будет равно $$$2+2+1+0=5$$$.

Во втором примере первый участник начнёт писать тур в момент времени $$$0$$$ и закончит в момент времени $$$2$$$. К этому моменту второй участник уже будет писать тур, а третий участник как раз начнёт в момент времени $$$2$$$. Поэтому недовольство первого участника будет равно $$$2$$$.

Второй участник начнёт в момент времени $$$1$$$ и закончит в момент времени $$$3$$$. К этому моменту только третий участник будет всё ещё писать тур.

Таким образом, суммарное недовольство всех участников будет равно $$$2+1=3$$$.

Система оценки

В данной задаче $$$20$$$ тестов, помимо тестов из условия, каждый из них оценивается в $$$5$$$ баллов. Результаты проверки ваших решений на всех тестах будут доступны сразу во время соревнования.

Решения, корректно работающие при $$$n, x, t \le 10$$$, наберут не менее $$$25$$$ баллов.

Решения, корректно работающие при $$$n \le 1000$$$, наберут не менее $$$50$$$ баллов.

Решения, корректно работающие при $$$n \le 100\,000$$$, наберут не менее $$$75$$$ баллов.

B. Вася и Петя
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

Однажды Петя в очередной раз написал грустную песню про любовь и поспешил показать ее Васе. Песня представляет собой строку из маленьких букв английского алфавита. У Васи сразу возникло $$$q$$$ вопросов про эту песню. Каждый вопрос представляет собой некоторый отрезок песни с позиции $$$l$$$ до позиции $$$r$$$ включительно. Вася рассматривает подстроку, образованную символами на этом отрезке, а затем повторяет каждую букву в этой подстроке $$$k$$$ раз, где $$$k$$$ — порядковый номер соответствующей буквы в алфавите. Например, если Вася выбрал подстроку «abbcb», то он повторит букву «a» один раз, каждую из букв «b» — по два раза, букву «c» — три раза, и полученная строка будет равна «abbbbcccbb», ее длина равна 10. Вася интересуется именно длиной полученной строки.

Помогите Пете ответить Васе на его вопросы, а именно, для каждого из заданных вопросов определите длину строки, которую выпишет Вася.

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

В первой строке вводятся числа $$$n, q$$$ ($$$1\leq n\leq 100\,000, 1\leq q \leq 100\,000$$$) — длина песни и количество вопросов.

Во второй строке дана строка $$$s$$$ — сама песня, представляющая собой строку длины $$$n$$$ из маленьких букв английского алфавита.

В следующих $$$q$$$ строках даны описания вопросов. Каждое описание состоит из двух чисел $$$l$$$ и $$$r$$$ $$$(1 \leq l \leq r \leq n)$$$ — границы каждого из вопросов.

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

Выведите $$$q$$$ строк — для каждого вопроса выведите длину строки, которую выпишет Вася.

Система оценки

В данной задаче $$$20$$$ тестов, помимо тестов из условия, каждый из них оценивается в $$$5$$$ баллов. Результаты проверки ваших решений на всех тестах будут доступны сразу во время соревнования.

Решения, корректно работающие при $$$n, q \le 1000$$$, наберут не менее $$$25$$$ баллов.

Решения, корректно работающие при $$$n, q \le 10\,000$$$, наберут не менее $$$50$$$ баллов.

Решения, корректно работающие в случае, когда $$$s$$$ состоит из символов $$$a,b$$$, наберут не менее $$$25$$$ баллов.

Примеры
Входные данные
7 3
abacaba
1 3
2 5
1 7
Выходные данные
4
7
11
Входные данные
7 4
abbabaa
1 3
5 7
6 6
2 4
Выходные данные
5
4
1
5
Входные данные
13 7
sonoshikumiwo
1 5
2 10
7 7
1 13
4 8
2 5
3 9
Выходные данные
82
125
9
191
62
63
97
Примечание

В первом примере Васю интересуют три вопроса. В первом вопросе Вася рассматривает подстроку «aba», которая превратится в «abba», а значит, ответ на этот вопрос равен 4. Во втором вопросе Вася рассматривает подстроку «baca», которая превратится в «bbaccca», а значит, ответ на этот вопрос будет равен 7. В третьем вопросе Вася рассматривает всю строку «abacaba», которая превратится в «abbacccabba» — строку длины 11.

C. Стабильные параллели
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Паша и Тёма приехали преподавать в зимний ноутбучный университет. Теперь им необходимо разобраться с учениками.

Есть $$$n$$$ учеников, пронумерованных от $$$1$$$ до $$$n$$$. Уровень знаний $$$i$$$-го ученика равен $$$a_i$$$. Всех учеников нужно распределить на стабильные параллели. Параллель называется стабильной, если после сортировки всех учеников параллели в порядке возрастания их уровня знаний у любых двух подряд идущих учеников разница уровня знаний не превосходит $$$x$$$.

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

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

В первой строке вводятся три целых числа $$$n$$$, $$$k$$$, $$$x$$$ ($$$1 \le n \le 200\,000, 0 \le k \le 10^{18}, 1 \le x \le 10^{18}$$$) — количество учеников, сколько учеников можно пригласить дополнительно и максимальная допустимая разница уровня знаний.

Во второй строке вводится $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^{18}$$$) — уровни знаний учеников.

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

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

Система оценки

В данной задаче $$$50$$$ тестов, помимо тестов из условия, каждый из них оценивается в $$$2$$$ балла. Результаты проверки ваших решений на всех тестах будут доступны сразу во время соревнования.

Решения, корректно работающие при $$$n, k, x, a_i \le 10$$$, наберут не менее $$$20$$$ баллов.

Решения, корректно работающие при $$$k = 0$$$, наберут не менее $$$14$$$ баллов.

Решения, корректно работающие, когда ответ не превосходит $$$2$$$, наберут не менее $$$16$$$ баллов.

Решения, корректно работающие при $$$n, k, x, a_i \le 1000$$$, наберут не менее $$$40$$$ баллов.

Примеры
Входные данные
8 2 3
1 1 5 8 12 13 20 22
Выходные данные
2
Входные данные
13 0 37
20 20 80 70 70 70 420 5 1 5 1 60 90
Выходные данные
3
Примечание

В первом примере из условия можно пригласить учеников с уровнями знаний, равными $$$2$$$ и $$$11$$$. Тогда учеников можно разделить на следующие стабильные параллели:

  1. $$$[1, 1, 2, 5, 8, 11, 12, 13]$$$,
  2. $$$[20, 22]$$$.

Во втором примере из условия новых учеников приглашать нельзя, поэтому потребуется $$$3$$$ параллели:

  1. $$$[1, 1, 5, 5, 20, 20]$$$
  2. $$$[60, 70, 70, 70, 80, 90]$$$
  3. $$$[420]$$$

D. PriceFixed
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Девочка Лена — самая экономная девочка в Москве. Поэтому когда папа поручил ей закупку продуктов для поездки на дачу, она сразу отправилась в самый лучший магазин — «PriceFixed». У этого магазина есть несколько особенностей:

  • В магазине есть бесконечный запас каждого товара.
  • Все товары в нем стоят одинаково — ровно 2 рубля.
  • Для каждого из $$$i$$$ товаров предусмотрена скидка для опытных покупателей: если вы уже приобрели $$$b_i$$$ товаров (любого типа, не обязательно типа $$$i$$$), то на все последующие покупки $$$i$$$-го товара будет действовать скидка $$$50\%$$$ (то есть, $$$i$$$-й товар можно будет покупать за 1 рубль!).

Лене нужно купить $$$n$$$ товаров: $$$i$$$-го товара нужно купить $$$a_i$$$ штук. Помогите Лене понять, какую минимальную сумму денег ей нужно будет потратить, если она будет выбирать порядок покупки товаров оптимальным образом.

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

В первой строке вводится число $$$n$$$ $$$(1 \leq n \leq 100\,000)$$$ — количество различных товаров в списке.

В следующих $$$n$$$ строках вводятся описания товаров. Каждое описание состоит из двух чисел $$$a_i$$$ и $$$b_i$$$, ($$$1 \leq a_i \leq 10^{14}$$$, $$$1 \leq b_i \leq 10^{14}$$$) — требуемое число товаров типа $$$i$$$ и сколько товаров нужно купить, чтобы получить скидку на товар $$$i$$$.

Сумма всех $$$a_i$$$ в тесте не превосходит $$$10^{14}$$$.

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

Выведите искомую минимальную сумму, которая требуется Лене для совершения всех покупок.

Система оценки

В данной задаче $$$20$$$ тестов, помимо тестов из условия, каждый из них оценивается в $$$5$$$ баллов. Результаты проверки ваших решений на всех тестах будут доступны сразу во время соревнования.

Обозначим за $$$A$$$ сумму по всем $$$a_i$$$ в тесте.

Решения, корректно работающие при $$$n, A \le 8$$$, наберут не менее $$$20$$$ баллов.

Решения, корректно работающие при $$$n, A \le 15$$$, наберут не менее $$$40$$$ баллов.

Решения, корректно работающие при $$$n, A \le 1000$$$, наберут не менее $$$60$$$ баллов.

Решения, корректно работающие при $$$n, A \le 100\,000$$$, наберут не менее $$$80$$$ баллов.

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

В первом примере из условия Лена может купить товары в таком порядке:

  1. единицу товара 3 за 2 рубля,
  2. единицу товара 1 за 2 рубля
  3. единицу товара 1 за 2 рубля,
  4. единицу товара 2 за 1 рубль (она может купить его со скидкой, так как уже куплено 3 товара),
  5. единицу товара 1 за 1 рубль (она может купить его со скидкой, так как уже куплено 4 товара).

Суммарно она потратит 8 рублей. Можно показать, что меньше потратить невозможно.

Во втором примере из условия Лена может купить товары в таком порядке:

  1. единицу товара 1 за 2 рубля,
  2. две единицы товара 2 по 2 рубля за каждую,
  3. единицу товара 5 за 2 рубля,
  4. единицу товара 3 за 1 рубль,
  5. две единицы товара 4 по 1 рублю за каждую,
  6. единицу товара 1 за 1 рубль.

Суммарно при таком порядке приобретения товаров Лена потратит 12 рублей.

E. Игра с картами
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Алиса и Боб играют в очень интересную карточную игру. На каждой карте в этой игре написано одно целое число. На протяжении игры у Боба в каждой из двух рук находится ровно одна карта. Изначально Боб держит в левой руке карту с числом 0, а в правой руке — также карту с числом 0.

Алиса делает $$$n$$$ ходов. На ходу с номером $$$i$$$ она предлагает Бобу карту с числом $$$k_i$$$, а также 4 числа $$$a_i$$$, $$$b_i$$$, $$$c_i$$$, $$$d_i$$$. Боб выбирает, в какую руку он хочет взять новую карту, после чего выбрасывает карту из этой руки и берет в эту руку новую карту Алисы. После этого Алиса проверяет карты Боба. А именно, пусть он в левой руке держит карту $$$x$$$, а в правой — карту $$$y$$$. Тогда должно выполняться $$$a_i \le x \le b_i$$$ и $$$c_i \le y \le d_i$$$, иначе игра немедленно заканчивается.

Боб заранее знает все числа $$$k_i$$$, $$$a_i$$$, $$$b_i$$$, $$$c_i$$$ и $$$d_i$$$. Помогите ему выбрать для каждого хода, в левую или правую руку ему следует класть очередную карту, чтобы в итоге все условия Алисы были выполнены.

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

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

Далее следует описание $$$n$$$ ходов. Каждое описание состоит из трех строк.

В первой строке описания $$$i$$$-го запроса вводится целое число $$$k_i$$$ ($$$0 \le k_i \le m$$$) — число, записанное на новой карте.

Во второй строке описания $$$i$$$-го запроса вводятся два целых числа $$$a_i$$$ и $$$b_i$$$ ($$$0 \le a_i \le b_i \le m$$$) — минимальное и максимальное допустимые значения для карты из левой руки после хода $$$i$$$.

В третьей строке описания $$$i$$$-го запроса вводятся два целых числа $$$c_i$$$ и $$$d_i$$$ ($$$0 \le c_i \le d_i \le m$$$) — минимальное и максимальное допустимые значения для карты из правой руки после хода $$$i$$$.

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

Если Боб не сможет удовлетворить все условия Алисы, выведите «No». Иначе в первой строке выведите «Yes», а затем в следующей строке выведите $$$n$$$ чисел — в какую руку Бобу следует класть очередную карту: если Бобу нужно взять карту в левую руку, выведите 0, иначе выведите 1. В случае, если у Боба существует несколько способов удовлетворить условиям Алисы, выведите любой из них.

Система оценки

Тесты к этой задаче состоят из 6 групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп.

Доп. ограничения
ГруппаБаллы$$$n$$$$$$m$$$Необх. группыКомментарий
00–––Тесты из условия.
115$$$n \le 15$$$$$$m \le 100$$$0
215$$$n \le 100$$$$$$m \le 100$$$0, 1
315$$$n \le 1000$$$$$$m \le 1000$$$0 – 2
415$$$n \le 10\,000$$$$$$m \le 10\,000$$$0 – 3
520–––$$$a_i = 0$$$ и $$$c_i = 0$$$ при любом $$$i$$$
620––0 – 5
Примеры
Входные данные
2 10
3
0 3
0 2
2
0 4
0 2
Выходные данные
Yes
0 1 
Входные данные
2 10
3
0 3
0 2
2
3 4
0 1
Выходные данные
No
Входные данные
5 10
3
0 3
0 3
7
4 7
1 3
2
2 3
3 7
8
1 8
1 8
6
1 6
7 10
Выходные данные
Yes
1 0 0 1 0 
Примечание

В первом примере из условия Боб может взять карту из первого хода в левую руку. После этого у него в руках будут карты $$$3$$$ и $$$0$$$, которые соответствуют ограничениям ($$$0 \le 3 \le 3$$$ для левой руки и $$$0 \le 0 \le 2$$$ для правой).

Карту из второго хода Боб может взять в правую руку, после чего в его руках будут карты $$$3$$$ и $$$2$$$, которые соответствуют ограничениям ($$$0 \le 3 \le 4$$$ для левой руки и $$$0 \le 2 \le 2$$$ для правой руки). Таким образом, Боб может удовлетворить всем ограничениям Алисы, и в этом случае ответ «Yes».

F. Необычный массив
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Васи есть массив, состоящий из $$$n$$$ чисел $$$a_1, a_2, \ldots, a_n$$$. Для каждой позиции $$$i$$$ и для каждого подотрезка массива $$$[l, r]$$$, который содержит позицию $$$i$$$ (то есть, $$$1 \le l \le i \le r \le n$$$), Вася вычисляет значение $$$c_{i, l, r}$$$ следующим образом. Вася выписывает на листочек числа из массива с позиции $$$l$$$ до позицию $$$r$$$, всего $$$len=r-l+1$$$ чисел (среди которых обязательно есть $$$a_i$$$), и сортирует выписанные числа по возрастанию. После чего Вася находит, на какой позиции $$$j$$$ в полученном отсортированном массиве стоит число $$$a_i$$$. Если таких позиций несколько, то среди них он выбирает ту, которая максимизирует расстояние от середины массива — позиции $$$mid = \lceil (len+1) / 2 \rceil$$$ ($$$len / 2 + 1$$$ в случае четного $$$len$$$ и $$$(len+1)/2$$$ в случае нечетного $$$len$$$). Полученное расстояние $$$|j - mid|$$$ и есть искомая величина $$$c_{i,l,r}$$$.

Например, если у Васи был массив $$$a=\{5,1,3,2,1,7\}$$$, а $$$i=2$$$, $$$l=2$$$, $$$r=5$$$, то Вася выпишет на листочек числа $$$\{1,3,2,1\}$$$, отсортирует их и получит массив $$$\{1,1,2,3\}$$$, длина которого равна 4. Середина этого массива находится на позиции $$$4/2+1=3$$$, а искомое число $$$a_i=1$$$ стоит в этом массиве на позициях 1 и 2. Среди этих двух позиций Вася выбирает ту, которая дальше от середины, то есть, позицию 1. Искомая разность между позициями равна 2, и это и есть значение $$$c_{2,2,5}$$$.

Для каждой позиции $$$i$$$ Вася вычисляет величину $$$b_i$$$, которая равна максимуму среди значений $$$c_{i,l,r}$$$ среди всех подотрезков, содержащих позицию $$$i$$$.

Как вы видите, определение числа $$$b_i$$$ достаточно сложное. Помогите Васе вычислить значения $$$b_i$$$ для всех позиций массива.

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

В первой строке входных данных находится одно целое число $$$n$$$ ($$$1 \le n \le 200\,000$$$) — размер массива Васи.

Во второй строке находится $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le n$$$) — элементы массива.

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

В единственной строке выведите $$$n$$$ чисел, $$$i$$$-е из них должно быть равно $$$b_i$$$.

Система оценки

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

Дополнительные ограничения
ГруппаБаллы$$$n$$$$$$a_i$$$Необх. группыКомментарий
00–––Тесты из условия.
111$$$n \le 50$$$–0
212$$$n \le 1000$$$–0, 1
323$$$n \le 5000$$$–0, 1, 2
417$$$n \le 50000$$$$$$a_i \le 10$$$0
510$$$n \le 50000$$$––Все $$$a_i$$$ различны
613$$$n \le 50000$$$–0, 1, 2, 3, 4, 5
714––0, 1, 2, 3, 4, 5, 6

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

Разберем подробнее первый пример.

  1. Для первой позиции Вася рассмотрит все подотрезки, содержащие эту позицию, в частности, подотрезок $$$[1,5]$$$, где $$$l=1$$$ и $$$r=5$$$. Для вычисления $$$c_{i,l,r}=c_{1,1,5}$$$ Вася выпишет числа $$$\{5, 4, 3, 2, 1\}$$$ и после сортировки получит $$$\{1, 2, 3, 4, 5\}$$$. Середина этого массива находится на позиции 3, а искомое число $$$a_1=5$$$ — на позиции 5. Таким образом, $$$c_{1,1,5}=2$$$. Нетрудно заметить, что это число — максимальное среди всех подотрезков, содержащих позицию 1, а значит, $$$b_1=2$$$.
  2. $$$b_2=c_{2,2,4}$$$.
  3. $$$b_3=c_{3,3,5}$$$.
  4. $$$b_4=c_{4,1,4}$$$. Действительно, если выписать числа на подотрезке $$$[1,4]$$$, то получится массив $$$\{5,4,3,2\}$$$, который после сортировки превратится в $$$\{2,3,4,5\}$$$. Середина этого массива находится на позиции $$$3$$$, а искомый элемент $$$a_4=2$$$ — на позиции 1. Таким образом, $$$c_{4,1,4}=2$$$.
  5. $$$b_5=c_{5,1,5}$$$.