XIX Нижегородская городская олимпиада школьников по информатике им. В. Д. Лелюха
A. Чкаловская лестница
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Данил и Даниил гуляли по Нижне-Волжской набережной и подошли к катеру 'Герой'. Они оглянулись и увидели какой-то памятник наверху. Им стало интересно, что это за памятник, но подниматься по большой лестнице, чтобы узнать название памятника, им было лень. Однако, они смогли уговорить себя подняться, но только по наименьшему количеству ступенек. Помогите Данилу и Даниилу понять, сколько ступенек им придется пройти.

План лестницы представлен на картинке ниже. На каждой части лестницы находится соответствующее ей количество ступенек $$$(a, \ b, \ c, \ d, \ e)$$$.

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

Первая строка содержит 5 натуральных чисел $$$a, \ b, \ c, \ d, \ e $$$. Гарантируется, что числа не превосходят $$$10^8$$$.

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

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

Система оценки
ГруппаБаллыДоп. ограниченияНеобх. группыКомментарий
$$$0$$$$$$0$$$——Тесты из условия
$$$1$$$$$$100$$$——Каждый тест
Примеры
Входные данные
5 2 3 4 5
Выходные данные
11
Входные данные
100 50 50 60 60
Выходные данные
210
Входные данные
1 3 2 4 5
Выходные данные
7
Примечание

В первом примере самый короткий путь это (a->b->d).

Во втором примере любой путь будет кратчайшим.

В третьем примере кратчайший путь — (a->c->d).

B. Капельки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Идет дождь.

Дождь состоит из $$$n$$$ капель, падающих вертикально вниз на прямую $$$y=0$$$. Для каждой капли известно положение, куда она упадет — $$$x_i$$$ и время, когда она упадет — $$$t_i$$$. После падения капля растекается так, что через $$$k$$$ секунд она полностью накроет отрезок $$$[x_i - k, x_i + k]$$$, включая его концы.

Вам нужно найти наименьшее целое число $$$T$$$, такое что через $$$T$$$ секунд капли полностью накроют отрезок $$$[0, r]$$$.

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

Первая строка содержит два натуральных числа $$$n$$$ — количество капель $$$(1 \leq n \leq 2\cdot 10^6)$$$ и $$$r$$$ — границу отрезка, который нужно накрыть $$$(1 \leq r \leq 10^9)$$$.

Во второй строке даны $$$n$$$ целых чисел $$$x_i$$$ — координаты капель $$$(0 \leq x_i \leq 10^9)$$$.

В третьей строке даны $$$n$$$ целых чисел $$$t_i$$$ — времена падения капель $$$(0 \leq t_i \leq 10^9)$$$.

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

Вывести одно целое число — минимальное количество секунд, через которое будет полностью накрыт отрезок $$$[0, r]$$$.

Система оценки
ГруппаБаллыДоп. ограниченияНеобх. группыКомментарий
$$$0$$$$$$0$$$——Тесты из условия
$$$1$$$$$$20$$$$$$n, r, x_i, t_i \leq 100$$$—Каждый тест
$$$2$$$$$$20$$$$$$n, r, x_i, t_i \leq 5000$$$—Каждый тест
$$$3$$$$$$50$$$$$$n \leq 2\cdot 10^5$$$—Каждый тест
$$$4$$$$$$10$$$——Каждый тест
Примеры
Входные данные
3 5
1 3 5
1 3 3
Выходные данные
4
Входные данные
4 2
3 2 1 0
1 1 1 1
Выходные данные
2
Входные данные
1 7
2
0
Выходные данные
5
Примечание

В первом примере в секунды 0, 1, 2, 3, 4 будут получатся такие картинки (синие точки — капельки, зеленый отрезок — отрезок, который необходимо накрыть, синий отрезок — растекшиеся капельки):

Во втором примере получатся такие картинки:

C. Нижний Нижний Нижний Новгород
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В Нижнем Новгороде идëт $$$2221$$$ год. Люди уже давно живут в гигантских небоскрëбах и передвигаются на летающих машинах. Под землëй был обнаружен старый город - отголосок далëкого прошлого. Туда стали водить экскурсии, а это место прозвали Нижний Нижний Новгород. И вот недавно там обнаружили старинное метро, некоторые станции которого нужно отреставрировать, чтобы проводить экскурсии и там. Рабочее название у древней подземки - Нижний Нижний Нижний Новгород. Старинное нижегородское метро представляет из себя $$$n$$$ станций. Некоторые пары станций соединены двунаправленными туннелями. Всего таких туннелей $$$m$$$. Рабочие пронумеровали станции числами от $$$1$$$ до $$$n$$$. Цена реставрации станции под номером $$$i$$$ равна $$$c_i$$$ рублей. Реставрация происходит так:

Сначала выбирается целое число $$$s\ (1 \leq s \leq n)$$$ - номер стартовой станции. Затем рабочие рассматривают все станции, до которых можно доехать от стартовой не более чем по $$$d$$$ туннелям, в том числе и сама станция под номером $$$s$$$. Несколько (больше нуля) станций из рассматриваемых будут реставрировать, однако, деньги на реставрацию выделяют суммами по $$$k$$$ рублей, поэтому требуется, чтобы суммарная стоимость реставрации выбранных станций делилась на $$$k$$$. Вам нужно для всех возможных стартовых станций $$$i$$$ от $$$1$$$ до $$$n$$$ сказать, какое должно быть минимальное $$$d$$$, чтобы среди всех рассмотренных станций можно было выбрать несколько таких, что суммарная стоимость их реставрации делилась на $$$k$$$. Заметьте, что стартовая станция не обязательно будет выбрана для реставрации.

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

В первой строке даны три натуральных числа $$$n$$$, $$$m$$$ и $$$k$$$ $$$(1 \le n, m \le 2 \cdot 10^5$$$, $$$1 \le k \le 50)$$$.

В следующей строке содержится $$$n$$$ целых неотрицательных чисел $$$c_1, c_2, \ldots, c_n$$$ $$$(0 \le c_i \le 10^9)$$$.

Следующие $$$m$$$ строк описывают положение туннелей в метро: в каждой строке содержится 2 различных целых числа $$$u_i$$$ и $$$v_i$$$ — номера станций, соединённых туннелем $$$(1 \le u_i, v_i \le n)$$$.

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

Выведите $$$n$$$ целых чисел через пробел, где $$$i$$$-е число — ответ для станции под номером $$$i$$$. Если для станции с номером $$$i$$$ не существует ответа, то для неё нужно вывести $$$-1$$$.

Система оценки
ГруппаБаллыДоп. ограниченияНеобх. группыКомментарий
$$$0$$$$$$0$$$——Тесты из условия
$$$1$$$$$$15$$$$$$n \le 20, m \le 200 $$$—Каждый тест
$$$2$$$$$$25$$$$$$n \le 5000, m \le 5000 $$$—Каждый тест
$$$3$$$$$$60$$$——Каждый тест
Примеры
Входные данные
6 7 10
4 12 6 13 14 6
6 3
6 2
2 3
6 4
4 1
6 3
5 3
Выходные данные
2 2 1 1 1 2 
Входные данные
5 4 5
10 6 7 7 1
3 1
1 5
2 3
3 5
Выходные данные
0 2 1 -1 1 

D. Скидки и точки
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Как известно, коренные москвичи любят покупать еду по скидкам, и Балбек не исключение. В таком прекрасном заведении, как «Тусно и вкочка», проходит очередная акция для жителей столицы. Всего в Москве $$$n$$$ таких заведений, и каждое располагается на плоскости в точке с координатами ($$$x_i, \ y_i$$$). В каждом заведении можно получить ровно 1 стикер.

Собрав $$$t$$$ стикеров, можно получить скидку в $$$\frac{100t}{n}\%$$$ на следующую покупку. К сожалению, москвичи ходят только по прямой, поэтому могут забрать стикеры только из заведений, находящихся на одной прямой. Балбек вышел на улицу и очень хочет получить скидку хотя бы $$$m\%$$$. Помогите определить, возможно ли это сделать при условии, что Балбек выйдет на улицу только один раз и, как коренной москвич, тоже будет идти только по единственной прямой, не сворачивая. Если это возможно, то скажите, какие номера заведений ему нужно посетить?

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

Первая строка содержит 2 целых числа $$$n \ (1\leq n \leq 400 \ 000)$$$ и $$$m \ (8\leq m \leq 100)$$$ — количество заведений и необходимая минимальная скидка соответственно. Как известно, для москвичей скидка < $$$8\%$$$ слишком маленькая и никак не помогает сэкономить деньги.

Далее идут $$$n$$$ строк: $$$i$$$-я из них содержит описание расположения $$$i$$$-го заведения — $$$x_i, \ y_i \ (-10^9 \leq x_i, \ y_i \leq 10^9) $$$. Обратите внимание, что координаты заведений могут совпадать, ведь «Тусно и вкочка» состоятельная компания, которая может позволить себе выкупить несколько этажей в здании.

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

Если невозможно выбрать необходимое количество заведений, выведите $$$No$$$ в любом регистре. Иначе выведите $$$Yes$$$ в любом регистре. Во второй строке выведите количество заведений, в которых вы будете брать стикеры. В третьей строке выведите в возрастающем порядке индексы заведений в изначальном наборе.

Если ответов несколько, выведите любой из них. Считайте, что заведения пронумерованы от $$$1$$$ до $$$n$$$.

Система оценки
ГруппаБаллыДоп. ограниченияНеобх. группыКомментарий
$$$0$$$$$$0$$$——Тесты из условия
$$$1$$$$$$10$$$$$$m = 100$$$—Полная группа
$$$2$$$$$$20$$$$$$n \leq 500$$$$$$0$$$Полная группа
$$$3$$$$$$20$$$$$$n \leq 2000$$$$$$0, 2$$$Полная группа
$$$4$$$$$$20$$$$$$n \leq 90000$$$$$$0, 2, 3$$$Полная группа
$$$5$$$$$$30$$$—$$$0, 1, 2, 3, 4$$$Полная группа
Примеры
Входные данные
9 90
1 1
2 2
3 3
1 2
1 3
2 1
2 3
3 1
3 2
Выходные данные
No
Входные данные
9 33
1 1
2 2
3 3
1 2
1 3
2 1
2 3
3 1
3 2
Выходные данные
Yes
3
2 5 8 
Примечание

В первом примере нужно, чтобы 9 заведений лежало на 1 прямой, но такой прямой не существует.

Во втором примере нужно, чтобы не менее 3 заведений лежало на 1 прямой. В качестве ответа подходят например заведения с номерами [1, 4, 5] или [1, 2, 3], или [2, 6, 7], или [3, 8, 9], или другой набор номеров 3-х заведений, лежащих на 1 прямой.

E. Циклические скобки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дана строка $$$S$$$, состоящая из $$$k$$$ видов пар скобок. Каждая скобка имеет вид $$$t$$$ — целое число, такое что $$$1 \leq |t| \leq k$$$. Если скобка имеет вид $$$t$$$, то

  • Если $$$t$$$ > 0, то это открывающая скобка типа $$$t$$$.
  • Если $$$t$$$ < 0, то это закрывающая скобка типа $$$-t$$$.

Таким образом, всего существует $$$k$$$ типов пар скобок.

Напомним определение правильной скобочной последовательности:

  • Пустая последовательность является правильной.
  • Если $$$A$$$ и $$$B$$$ - две правильные скобочные последовательности, то их конкатенация $$$« AB»$$$ тоже является правильной скобочной последовательностью.
  • Если $$$A$$$ - правильная скобочная последовательность, $$$c \ (1\leq c \leq k)$$$ — некоторый тип скобок, то последовательность $$$«c\ \ A\ \ {-c}»$$$ тоже является правильной.
Циклический сдвиг скобочной последовательности вправо на 1 действует следующим образом: последний элемент последовательности ставится в начало, то есть перед самым первым элементом, а затем удаляется с конца.

Циклический сдвиг скобочной последовательности вправо на $$$m$$$ > 1 эквивалентен $$$m$$$ циклическим сдвигам на 1.

Найдите все такие $$$m \ (0 \leq m \leq |S| - 1) $$$, что при циклическом сдвиге на $$$m$$$ элементов получившаяся скобочная последовательность будет правильной.

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

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

Во второй строке дана строка $$$s$$$ длиной $$$n$$$ символов — $$$n$$$ целых чисел $$$s_1, \ s_2, \ ..., \ s_n \ (1 \leq |s_i| \leq 10^9)$$$.

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

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

Система оценки
ГруппаБаллыДоп. ограниченияНеобх. группыКомментарий
$$$0$$$$$$0$$$——Тесты из условия
$$$1$$$$$$7$$$$$$n \leq 500$$$, $$$k = 1$$$—Каждый тест
$$$2$$$$$$10$$$$$$n \leq 5000$$$, $$$k = 1$$$—Каждый тест
$$$3$$$$$$20$$$$$$k = 1$$$—Каждый тест
$$$4$$$$$$26$$$$$$n \leq 5000$$$, $$$k \leq 10^9$$$—Каждый тест
$$$5$$$$$$37$$$$$$k \leq 10^9$$$—Каждый тест
Примеры
Входные данные
4
1 2 -1 -2
Выходные данные
0
Входные данные
8
-2 2 2 -2 1 -1 -2 2
Выходные данные
2
1 7 
Входные данные
8
-1 -3 4 -4 -5 5 3 1
Выходные данные
1
3 
Примечание

В первом тестовом примере все циклические сдвиги строки это:

  • 1 2 -1 -2
  • -2 1 2 -1
  • -1 -2 1 2
  • 2 -1 -2 1

Правильной скобочной последовательности среди них нет.

Во втором тестовом примере циклические сдвиги это 1 и 7:

  • 2 -2 2 2 -2 1 -1 -2
  • 2 2 -2 1 -1 -2 2 -2

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

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

Два друга — Данил и Даниил — шли домой дорогой ночной, вдруг они придумали игру. Эта игра проходит следующим образом: На доске изначально написано число $$$n$$$. У Данила есть число $$$d_1$$$, а у Даниила — число $$$d_2$$$. Игра состоит из нескольких ходов. Данил и Даниил ходят по очереди. Первым ходит игрок с меньшим количеством букв «и» в своём имени (Данил). На каждом ходу игрок, которому принадлежит ход, пытается разделить число, написанное на доске (обозначим его $$$x$$$), на своё число. Если $$$x$$$ делится на число игрока нацело, то число на доске заменяется на результат деления, иначе вместо $$$x$$$ записывается $$$x - 1$$$. Затем ход завершается, а очередь ходить переходит к другому игроку. Как только $$$x$$$ становится равным нулю, игра завершается. Данилу и Даниилу интересно, сколько ходов произойдёт в такой игре в зависимости от значений $$$n$$$, $$$d_1$$$ и $$$d_2$$$.

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

Единственная строка содержит три натуральных числа, $$$n$$$, $$$d_1$$$, $$$d_2$$$ $$$(2 \le n, d_1, d_2 \le 10^{18})$$$.

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

Выведите одно число — количество ходов, которое сделают игроки.

Система оценки
ГруппаБаллыДоп. ограниченияНеобх. группыКомментарий
$$$0$$$$$$0$$$——Тесты из условия
$$$1$$$$$$40$$$$$$n, d_1, d_2 \leq 10^6$$$—Каждый тест
$$$2$$$$$$60$$$——Каждый тест
Примеры
Входные данные
15 2 3
Выходные данные
7
Входные данные
18 2 3
Выходные данные
5
Входные данные
5 6 7
Выходные данные
5
Примечание

Пояснение к примеру из условия:

1. Данил вычитает 1, число равно 14

2. Даниил вычитает 1, число равно 13

3. Данил вычитает 1, число равно 12

4. Даниил делит на 3, число равно 4

5. Данил делит на 2, число равно 2

6. Даниил вычитает 1, число равно 1

7. Данил вычитает 1, число равно 0

G. Мой пешечный эндшпиль не удался, как я и ожидал
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Есть шахматная доска, размерами $$$10^{18}$$$ в высоту и $$$2$$$ в ширину. Каждая клетка имеет координаты $$$(C, R)$$$, где $$$R$$$ — номер ряда (ряды нумеруются снизу вверх от 1 до $$$10^{18}$$$), в котором расположена клетка, а $$$C$$$ принимает два возможных значения: 1 или 2, для левого и правого столбца соответственно.

На доске находится одна белая пешка и несколько чёрных фигур. Белая пешка изначально расположена в самой левой нижней клетке $$$(1, 1)$$$ и может ходить по правилам шахмат, при этом чёрные фигуры ходить не могут. Более формально:

  • Из клетки $$$(1, R)$$$, пешка может попасть в $$$(1, R + 1)$$$, только если в клетке $$$(1, R + 1)$$$ нет чёрной фигуры.
  • Из клетки $$$(1, R)$$$, пешка может попасть в $$$(2, R + 1)$$$, только если в клетке $$$(2, R + 1)$$$ есть чёрная фигура (после такого хода чёрная фигура исчезает и на её место становится белая пешка).
  • Из клетки $$$(2, R)$$$, пешка может попасть в $$$(2, R + 1)$$$, только если в клетке $$$(2, R + 1)$$$ нет чёрной фигуры.
  • Из клетки $$$(2, R)$$$, пешка может попасть в $$$(1, R + 1)$$$, только если в клетке $$$(1, R + 1)$$$ есть чёрная фигура (после такого хода чёрная фигура исчезает и на её место становится белая пешка).

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

Вам известны позиции чёрных фигур. Необходимо проверить, сможет ли пешка достичь своей цели, то есть дойти до одной из клеток: $$$(1, 10^{18})$$$ или $$$(2, 10^{18})$$$.

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

В первой строке вводится количество чёрных фигур $$$n$$$, $$$(1 \leq n \leq 10^5)$$$.

На каждой следующей строке вводятся координаты $$$i$$$-й фигуры: $$$(C, R)$$$, $$$(1 \leq C \leq 2, 1 \leq R \leq 10^{18})$$$. Координаты всех фигур различны.

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

Выведите $$$Yes$$$, если пешка сможет добраться до клетки $$$(1, 10^{18})$$$ или $$$(2, 10^{18})$$$. В противном случае выведите $$$No$$$.

Система оценки
ГруппаБаллыДоп. ограниченияНеобх. группыКомментарий
$$$0$$$$$$0$$$——Тесты из условия
$$$1$$$$$$25$$$$$$1 \leq n \leq 100$$$, $$$1 \leq R \leq 100$$$—Полная группа
$$$2$$$$$$25$$$$$$1 \leq n \leq 100$$$, $$$1 \leq R \leq 10^5$$$—Полная группа
$$$3$$$$$$25$$$$$$1 \leq n \leq 10^5$$$, $$$1 \leq R \leq 10^5$$$—Полная группа
$$$4$$$$$$25$$$——Полная группа
Примеры
Входные данные
1
1 2
Выходные данные
NO
Входные данные
1
1 1000000000000000000
Выходные данные
NO
Входные данные
2
1 1000000000000000000
2 1000000000000000000
Выходные данные
YES

H. От 6 до 12?
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Сколько же задач будет на очередной Нижегородской олимпиаде по информатике? Понятно, что ответ зависит от некоторого числа $$$n$$$, но чтобы вычислить количество задач точно (а это крайне необходимо, ведь решительно не ясно, до какой буквы надо учить английский алфавит на этот раз), нужно строго следовать инструкциям.

Пару натуральных чисел $$$a$$$ и $$$b$$$ назовем дружной, если каждое из них содержит хотя бы две цифры (то есть они не меньше $$$10$$$), не содержит ведущих нулей и последняя цифра числа $$$a$$$ совпадает с первой цифрой числа $$$b$$$.

Количество различных дружных пар (a, b), таких, что $$$a + b = n$$$, и будет ответом на поставленный выше извечный вопрос.

Если число $$$a$$$ не равно числу $$$b$$$, то пары $$$(a, b)$$$ и $$$(b, a)$$$ считаются различными (см. пример 1).

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

В первой строке задано натуральное число $$$n$$$ $$$(1 \leq n \leq 10^{18})$$$.

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

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

Система оценки
ГруппаБаллыДоп. ограниченияНеобх. группыКомментарий
$$$0$$$$$$0$$$——Тесты из условия
$$$1$$$$$$15$$$$$$n \leq 5000$$$—Каждый тест
$$$2$$$$$$15$$$$$$n \leq 10^6$$$—Каждый тест
$$$3$$$$$$70$$$$$$n \leq 10^{18}$$$—Каждый тест
Примеры
Входные данные
33
Выходные данные
2
Входные данные
2023
Выходные данные
201
Примечание

В первом примере подходящие пары — $$$(12, 21)$$$ и $$$(21, 12)$$$.