Муниципальный этап ВсОШ по информатике в Нижегородской области 2023
A. Детали и ресурсы
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дима решил бросить программирование, и заняться нормальным делом. А именно, пойти на завод менеджером по закупкам металла.

На заводе работает $$$N$$$ рабочих, и им поступил крупный заказ: каждый должен изготовить $$$M$$$ деталей, для изготовления каждой требуется $$$K$$$ килограммов металла.

Вся проблема в том, что металл заказывается напрямую из Китая, и не в килограммах, а целыми контейнерами! В каждом контейнере $$$L$$$ килограммов металла, стоит он $$$S$$$ рублей, и покупать можно только целые контейнеры.

Вам необходимо рассчитать минимальную сумму, которую придётся потратить на закупки, чтобы сделать этот заказ!

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

Первая строка содержит число $$$N$$$ — количество рабочих ($$$1 \le N \le 10^3$$$).

Вторая строка содержит число $$$M$$$ — количество деталей ($$$1 \le M \le 10^3$$$).

Третья строка содержит число $$$K$$$ — требуемое количество килограммов метала ($$$1 \le K \le 10^3$$$).

Четвёртая строка содержит число $$$L$$$ — количество килограмм металла в одном контейнере ($$$1 \le L \le 10^3$$$).

Пятая строка содержит число $$$S$$$ — стоимость одного контейнера ($$$1 \le S \le 10^3$$$).

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

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

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

В первом примере вам необходимо закупить 5 контейнеров, так как необходимое количество металла 3 * 2 * 5 = 30, 35 килограммов из 5 контейнеров будет достаточно, в то время как 28 килограммов из 4 контейнеров не хватает.

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

В Берляндии решили построить новую школу, но так как жители Берляндии очень суеверны, то в номере кабинета могут использоваться только цифры от $$$1$$$ до $$$k$$$. При этом в номере кабинета может использоваться не более $$$n$$$ цифр.

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

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

В единственной строке находится два числа $$$n$$$ и $$$k$$$ — количество цифр и максимальная цифра соответственно.

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

В единственной строке необходимо вывести единственное число — максимальное количество кабинетов. Гарантируется, что ответ не превосходит $$$10^{15}$$$.

Пример
Входные данные
2 3
Выходные данные
12
Примечание

В первом примере подходят следующие номера кабинетов: $$$1$$$, $$$2$$$, $$$3$$$, $$$11$$$, $$$12$$$, $$$13$$$, $$$21$$$, $$$22$$$, $$$23$$$, $$$31$$$, $$$32$$$, $$$33$$$. Всего подходящих номеров кабинета $$$12$$$.

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

Недавно Петя получил целое число $$$s$$$. Так как он очень любит массивы, то его заинтересовала следующая задача: он хочет найти два массива $$$a$$$ и $$$b$$$. При этом они должны удовлетворять следующим условиям:

  • Каждый элемент — это целое число от $$$0$$$ до $$$9$$$.
  • Сумма элементов в обоих массивах равна в точности $$$s$$$. Пусть размер итогового массива $$$a$$$ равен $$$n$$$, а массива $$$b$$$ равен $$$m$$$, тогда $$$a_1 + \ldots + a_n + b_1 + \ldots + b_m = s$$$, кроме этого должно выполнятся условие $$$n \le m$$$.

При этом вам надо найти такие массивы $$$a$$$ и $$$b$$$, чтобы значение следующего выражения было максимально: $$$a_1 \cdot b_1 + a_2 \cdot b_2 + \ldots + a_n \cdot b_n$$$.

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

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

В единственной строке дано одно число $$$s$$$ — сумма элементов обоих массивов ($$$1 \le s \le 10^7$$$).

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

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

Пример
Входные данные
11
Выходные данные
30
Примечание

Для первого примера подходят следующие массивы: $$$a = [5]$$$, $$$b = [6]$$$. Сумма элементов равна $$$11$$$, а значение выражения равно $$$30$$$. Можно показать, что большего значения получить не получится.

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

Как известно, на марсе время течёт по-другому. Поэтому ваш друг-космонавт просит у вас помощи, как у первоклассного программиста. На марсе сутки длятся $$$H$$$ часов, а час длится $$$M$$$ минут, сейчас часы показывают время $$$H_1:M_1$$$, время вылета $$$H_2:M_2$$$.

Часы вашего друга показывают время на семисегментных дисплеях, в каждом сегменте одна цифра, при этом привычное двоеточие в его часах не отображается (да, так его часы показывают непонятно что, но кто мы такие, чтобы его осуждать). Но есть один нюанс... В его часах соседние единицы помещаются в один семисегментный дисплей. Например, время $$$13:14$$$ будет занимать четыре сегмента, время $$$21:12$$$ будет занимать три сегмента, а время $$$111:1111$$$ будет занимать четыре сегмента, так как последняя единица будет без «пары».

Ваш друг хочет, чтобы на его часах могло отображаться любое время из промежутка [$$$H_1:M_1$$$;$$$H_2:M_2$$$], но при этом дисплеи не бесплатные, поэтому он хочет использовать минимальное количество дисплеев для своих часов, чтобы каждое время можно было отобразить!

Обратите внимание, что ведущие нули в дисплее не отображаются как для часов, так и для минут, то есть стандартное время $$$12:00$$$ будет отображаться как $$$120$$$.

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

В первой строке даны два числа через пробел $$$H$$$, $$$M$$$ — количество часов в сутках и количество минут в часе ($$$1 \le H \times M \le 10^6$$$).

Во второй строке заданы числа $$$H_1$$$, $$$M_1$$$ — первое время ($$$0 \le H_1 \lt H$$$, $$$0 \le M_1 \lt M$$$).

В третьей строке заданы числа $$$H_2$$$, $$$M_2$$$ — второе время ($$$0 \le H_2 \lt H$$$, $$$0 \le M_2 \lt M$$$).

Гарантируется, что второе время наступит в этот же день после первого.

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

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

Примеры
Входные данные
12 30
10 29
11 0
Выходные данные
4
Входные данные
24 60
8 0
9 0
Выходные данные
3
Входные данные
24 60
8 0
8 9
Выходные данные
2
Примечание

В первом тесте вам необходимо отображать на вашем дисплее время $$$10:29$$$ и $$$11:00$$$. В первый момент времени необходимы четыре дисплея, а во второй — 2, так как первые две единицы «склеятся» в один дисплей, но 2 дисплеев не хватит, чтобы отобразить первый момент времени.

E. Хорошие-хорошие подотрезки
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Недавно на уроках Вася изучил массивы, хоть эта тема и показалась ему слишком простой, но он нашёл для себя интересным следующее: пусть у него есть массив состоящий из $$$n$$$ целых чисел. На массиве от рассматривает пары $$$l$$$ и $$$r$$$ такие, что $$$1 \le l \le r \le n$$$. Вася считает пару $$$l, r$$$ хорошей, если сумма на подотрезке массива с $$$l$$$ по $$$r$$$ равна $$$0$$$, то есть $$$a_l + a_{l + 1} + \ldots + a_r = 0$$$.

Но не успел Вася придумать себе задание, как учитель предложил ему следующее задачу: посчитать количество пар $$$l, r$$$ таких, что $$$1 \le l \le r \le n$$$ и в подотрезке массива с $$$l$$$ по $$$r$$$ есть хороший подотрезок. То есть можно найти такие $$$l_1$$$ и $$$r_1$$$, что $$$l \le l_1 \le r_1 \le r$$$ и подотрезок $$$l_1$$$, $$$r_1$$$ — хороший. Вася считает такие пары $$$l$$$, $$$r$$$ хорошими-хорошими.

Помогите Васе и скажите количество хороших-хороших пар.

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

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

Во второй строке через пробел перечислены $$$n$$$ целых чисел $$$a_i$$$ — элементы массива ($$$-10^7 \le a_i \le 10^7$$$).

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

Ваша программа должна вывести одно число — количество пар $$$l$$$ и $$$r$$$, которые являются хорошими-хорошими.

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

В первом примере следующие отрезки являются хорошими: $$$[1, 3]$$$, $$$[2, 4]$$$. Хорошими-хорошими являются отрезки $$$[1, 3]$$$, $$$[1, 4]$$$, $$$[2, 4]$$$. Всего таких отрезка $$$3$$$.

F. Очередная задача про запросы на перестановках
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Устали от длинных условий?...

Вам дана перестановка $$$p$$$ длины $$$n$$$, а также $$$m$$$ запросов.

Каждый запрос представляется границами $$$1 \leq l \leq r \leq n$$$, в ответ вам надо сказать количество пар $$$l \leq i, j \leq r$$$, $$$i \neq j$$$ таких, что $$$p_i$$$ является делителем $$$p_j$$$.

Перестановкой длины $$$n$$$ является массив, состоящий из $$$n$$$ различных целых чисел от 1 до $$$n$$$ в произвольном порядке. Например, [2,3,1,5,4] — перестановка, но [1,2,2] не перестановка (2 встречается в массиве дважды) и [1,3,4] тоже не перестановка ($$$n=3$$$, но в массиве встречается 4).

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

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

Во второй строке вам даны $$$n$$$ чисел $$$p_i$$$ — элементы перестановки ($$$1 \le p_i \le n$$$).

В последующих $$$m$$$ строках даны запросы, по два целых числа $$$l_i$$$, $$$r_i$$$ — границы запроса ($$$1 \le l_i \le r_i \le n$$$).

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

Выведите $$$m$$$ строк, в $$$i$$$-й из которых ответ на $$$i$$$-й запрос.

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

В первом запросе искомыми парами индексов будут (2, 5), (4, 5), (4, 3); 6 делится на 3, 6 делится на 2, 4 делится на 2.