Муниципальный этап ВсОШ по информатике в Вологодской области 2023, 9-11 классы
1. Ромбический порядок
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Бесконечное клетчатое поле заполнено последовательными натуральными числами, расположенными в виде концентрических ромбов. Заполнение каждого ромба начинается с его верхней клетки и идёт по часовой клетке — смотрите рисунок. Клетку, содержащую число 1, назовём центральной.

Напишите программу, которая для заданной пары значений x и y найдёт число в клетке, которая отстоит на x шагов по горизонтали и на y шагов по вертикали от центральной клетки.

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

Вводятся два целых числа $$$x$$$ и $$$y$$$, каждое в отдельной строке ($$$-10^6 \le x, y \le 10^6$$$).

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

Выведите одно целое число — ответ.

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

Подзадача 1 (до 36 баллов): $$$-3 \le x, y \le 3$$$.

Подзадача 2 (до 32 баллов): $$$-1000 \le x, y \le 1000$$$.

Подзадача 3 (до 32 баллов): $$$-10^6 \le x, y \le 10^6$$$.

Примеры
Входные данные
2
1
Выходные данные
16
Входные данные
-1
-2
Выходные данные
21
Примечание

Обратите внимание, что ответ в последней подзадаче может быть достаточно большим и не помещаться в 32-битный тип данных. Рекомендуется использовать 64-битный тип данных, например, тип long long в языке C++, тип int64 в языке Pascal, тип long в языках Java и C#. Язык Python автоматически работает с целыми числами любой длины.

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

Алфавит некоторого языка состоит всего из трёх букв — а, о и c. Определите, какое максимальное количество слов длины N может быть в языке, если каждая буква алфавита может встречаться в слове не более K раз.

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

Вводятся два целых числа $$$N$$$ и $$$K$$$, каждое в отдельной строке ($$$1 \le N, K \le 30$$$).

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

Выведите одно целое число — количество слов.

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

Подзадача 1 (до 25 баллов): $$$K \le 2$$$

Подзадача 2 (до 35 баллов): $$$N \le 15$$$

Подзадача 3 (до 40 баллов): $$$N \le 30$$$

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

В первом примере ответ равен 6 — это слова ао, оа, ос, со, ас и са. Во втором примере ответ равен 9, так как добавляются ещё слова аа, оо и cc.

Обратите внимание, что ответ в последней подзадаче может быть достаточно большим и не помещаться в 32-битный тип данных. Рекомендуется использовать 64-битный тип данных, например, тип long long в языке C++, тип int64 в языке Pascal, тип long в языках Java и C#. Язык Python автоматически работает с целыми числами любой длины.

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

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

К сожалению, при составлении графика командировок начальство иногда ошибается, и может получиться так, что в какой-то день Иван Иванович должен находиться в двух (или более) разных городах одновременно. Напишите программу для подсчёта количества таких дней.

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

В первой строке записано количество командировок $$$N$$$ ($$$2 \le N \le 10^5$$$).

В каждой из следующих $$$N$$$ строк через пробел записаны день начала $$$d_1$$$ и день конца $$$d_2$$$ очередной командировки ($$$1 \le d_1 \le d_2 \le 10^9$$$) и номер города $$$c$$$ ($$$1 \le c \le 10^9$$$). Входные данные упорядочены по неубыванию $$$d_1$$$.

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

Выведите одно целое число — искомое количество дней.

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

Решения, верно работающие при $$$N \le 1000$$$, $$$d_2 \le 1000$$$, могут получить до 50 баллов.

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

В примере во второй и третий день Иван Иванович должен одновременно находиться в городах 2 и 5.

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

Примечание для пишущих на Python: три числа, записанных через пробел, можно прочитать так:

d1, d2, c = map(int, input().split())

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

Назовём целое неотрицательное число забавным, если оно состоит не более чем из двух различных цифр — например, 555, 272772, 100.

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

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

Вводится целое неотрицательное число $$$n$$$ ($$$0 \le n \le 10^9$$$).

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

Выведите одно целое число — количество способов представить $$$n$$$ в виде суммы двух забавных чисел без учёта порядка слагаемых.

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

Подзадача 1 (до 30 баллов): $$$n \le 100$$$.

Подзадача 2 (до 30 баллов): $$$n \le 10^4$$$.

Подзадача 3 (до 40 баллов): $$$n \le 10^9$$$.

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

В первом примере число 3 можно представить двумя способами: 0 + 3 и 1 + 2.

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

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

Назовём ПСП длины $$$2n$$$ симметричной, если для любого $$$i$$$ от $$$1$$$ до $$$n$$$ верно, что $$$i$$$-я скобка с начала не равна $$$i$$$-й скобке с конца. Например, для $$$n=3$$$ следующие ПСП являются симметричными: '((()))', '()()()' и '(()())'.

Напишите программу, вычисляющую количество симметричных ПСП длины $$$2n$$$.

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

Вводится одно целое число $$$n$$$ ($$$1 \le n \le 50$$$).

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

Выведите одно целое число — количество симметричных ПСП длины $$$2n$$$.

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

Подзадача 1 (до 45 баллов): $$$n \le 10$$$

Подзадача 2 (до 25 баллов): $$$n \le 20$$$

Подзадача 3 (до 30 баллов): $$$n \le 50$$$

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

Обратите внимание, что ответ в последней подзадаче может быть достаточно большим и не помещаться в 32-битный тип данных. Рекомендуется использовать 64-битный тип данных, например, тип long long в языке C++, тип int64 в языке Pascal, тип long в языках Java и C#. Язык Python автоматически работает с целыми числами любой длины.