Школьный этап ВСОШ по информатике 9-11 класс 2022 (1 группа регионов)
1. Лягушка и кузнечик
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В крайних клетках полоски шириной в одну клетку и длиной в $$$N$$$ клеток сидят лягушка и кузнечик: лягушка в клетке № 1, кузнечик в клетке № $$$N$$$. Каждую секунду лягушка прыгает в сторону кузнечика, и одновременно кузнечик прыгает в сторону лягушки. Лягушка может прыгать только на две или на три клетки, кузнечик — только на одну или на две клетки. За какое наименьшее время они смогут оказаться в одной клетке?

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

Единственная строка входных данных содержит целое число $$$N$$$ — длину клетчатой полосы ($$$2 \leq N \leq 2\cdot 10^9$$$).

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

Если лягушка и кузнечик могут оказаться в одной клетке, требуется вывести одно целое число — минимальное количество секунд, через которое они встретятся. Если они не смогут оказаться в одной клетке, требуется вывести число «-1» (без кавычек).

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

Решения, правильно работающие при $$$N \leq 30$$$, будут оцениваться в 30 баллов.

Решения, правильно работающие при $$$N \leq 10^5$$$, будут оцениваться в 50 баллов.

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

В первом примере лягушка может прыгнуть из клетки 1 в клетки 3 и 4, а кузнечик может прыгнуть из клетки 5 в клетки 3 и 4. Поэтому через 1 секунду они могут оказаться в одной клетке.

Во втором примере лягушка и кузнечик могут встретиться через 2 секунды. Например, лягушка прыгает в клетку 3, затем в клетку 6, а кузнечик прыгает в клетку 8, затем в клетку 6.

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

Дан прямоугольник из $$$N\times M$$$ квадратов. Назовём квадраты на границе прямоугольника крайними. Расстоянием от какого-либо квадрата до края назовём количество перемещений, которое нужно сделать из данного квадрата в соседний по стороне квадрат, чтобы добраться от данного квадрата до крайнего квадрата. Квадраты с максимальным расстоянием до края, будем называть центральными. При этом квадрат может быть одновременно и крайним, и центральным.

На рисунке изображён прямоугольник для $$$N=7$$$ и $$$M=8$$$, в каждом квадрате которого записано расстояние от этого квадрата до края. У этого прямоугольника два центральных квадрата.

По данным $$$N$$$ и $$$M$$$ определите количество центральных квадратов в прямоугольнике.

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

Программа получает на вход два целых положительных числа записанных в разных строках, не превосходящих $$$10^9$$$ — размеры прямоугольника.

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

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

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

Решения, правильно работающие, когда входные числа не превосходят $$$100$$$, будут оцениваться в 30 баллов.

Решения, правильно работающие, когда входные числа не превосходят $$$10^5$$$, будут оцениваться в 60 баллов.

Пример
Входные данные
7
8
Выходные данные
2

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

Решив запастись ручками на весь новый учебный год, Игорь подсчитал, что ему нужно $$$M$$$ ручек.

В его любимом интернет-магазине есть удобная функция — он может сразу добавить в заказ упаковку из любого числа ручек от $$$1$$$ до $$$N$$$. Правда, оказалось, что нельзя добавить в заказ две упаковки одного размера. Например, если Игорю нужно купить $$$M=12$$$ ручек, а максимальное число ручек в упаковке $$$N=10$$$, то Игорь может добавить в заказ упаковку из $$$7$$$ ручек и упаковку из $$$5$$$ ручек, но не сможет добавить две упаковки из $$$6$$$ ручек.

Сформируйте заказ на $$$M$$$ ручек, используя минимальное число различных упаковок.

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

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

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

Программа должна вывести одно или несколько чисел от $$$1$$$ до $$$N$$$ — размеры выбранных упаковок в любом порядке. Есть имеется несколько возможных решений, то выведите любое из них. Если решения не существует, необходимо вывести одно число «$$$0$$$».

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

Решения, правильно работающие при $$$N \le 10^5$$$, будут оцениваться в 40 баллов.

Примеры
Входные данные
10
12
Выходные данные
5
7
Входные данные
2
5
Выходные данные
0

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

В левом верхнем углу прямоугольного поля размера $$$N \times M$$$ сидит Черепашка. Она хочет закрасить некоторые клетки по спирали, закручивающейся к центру, как на рисунке:

Определите, сколько клеток ей придётся закрасить.

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

Первая строка входных данных содержит число $$$N$$$ — высоту прямоугольника, вторая строка содержит число $$$M$$$ — ширину прямоугольника. Все числа — целые положительные и не превосходят $$$2\times10^9$$$.

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

Программа должна вывести одно целое число — количество клеток, закрашенных Черепашкой.

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

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

Решения, правильно работающие, когда числа $$$N$$$ и $$$M$$$ не превосходят 100, будут оцениваться в 40 баллов.

Решения, правильно работающие, когда числа $$$N$$$ и $$$M$$$ не превосходят $$$10^5$$$, будут оцениваться в 60 баллов.

Примеры
Входные данные
5
6
Выходные данные
20
Входные данные
1
5
Выходные данные
5

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

Вы получили доступ к одной из камер наблюдения в особо секретной огранизации. В зоне видимости камеры находится табло, с которого вы постоянно считываете информацию. Теперь вам нужно написать программу, которая по состоянию табло определяет, какая буква изображена на нём в данный момент. Табло представляет из себя квадратную таблицу, разбитую на $$$n\times n$$$ равных квадратных светодиодов. Каждый диод либо включён, либо выключен. Введём систему координат, направив ось $$$OX$$$ вправо, а ось $$$OY$$$ — вверх, приняв сторону диода равной 1.

На табло могут быть изображены только следующие буквы:

  • I — прямоугольник из горящих диодов.
  • O — прямоугольник из горящих диодов с углами $$$(x_1, y_1)$$$ и $$$(x_2, y_2)$$$, внутри которого есть прямоугольник из выключенных диодов с координатами углов $$$(x_3, y_3)$$$ и $$$(x_4, y_4)$$$. При этом границы выключенного прямоугольника не должны касаться внешнего, то есть $$$x_1 \lt x_3 \lt x_4 \lt x_2$$$ и $$$y_1 \lt y_3 \lt y_4 \lt y_2$$$.
  • C — прямоугольник из горящих диодов с углами $$$(x_1, y_1)$$$ и $$$(x_2, y_2)$$$, внутри которого есть прямоугольник из выключенных диодов с координатами углов $$$(x_3, y_3)$$$ и $$$(x_4, y_4)$$$. При этом правая граница выключенного прямоугольника находится на правой границе внешнего прямоугольника, то есть $$$x_1 \lt x_3 \lt x_4 = x_2$$$ и $$$y_1 \lt y_3 \lt y_4 \lt y_2$$$.

  • L — прямоугольник из горящих диодов с углами $$$(x_1, y_1)$$$ и $$$(x_2, y_2)$$$, внутри которого есть прямоугольник из выключенных диодов с координатами углов $$$(x_3, y_3)$$$ и $$$(x_4, y_4)$$$. При этом правые верхние углы выключенного прямоугольника и внешнего прямоугольника совпадают, то есть $$$x_1 \lt x_3 \lt x_4 = x_2$$$ и $$$y_1 \lt y_3 \lt y_4 = y_2$$$.
  • H — прямоугольник из горящих диодов с углами $$$(x_1, y_1)$$$ и $$$(x_2, y_2)$$$, внутри которого находятся 2 прямоугольника из выключенных диодов с координатами углов $$$(x_3, y_3)$$$, $$$(x_4, y_4)$$$ у первого и $$$(x_5, y_5)$$$, $$$(x_6, y_6)$$$ у второго. При этом выключенные прямоугольники должны иметь одинаковую ширину, находиться строго один под другим, один прямоугольник должен касаться верхней стороны, а другой прямоугольник должен касаться нижней стороны внешнего прямоугольника, то есть $$$x_1 \lt x_3 = x_5 \lt x_4 = x_6 \lt x_2$$$ и $$$y_1 = y_3 \lt y_4 \lt y_5 \lt y_6 = y_2$$$.

  • P — прямоугольник из горящих диодов с углами $$$(x_1, y_1)$$$ и $$$(x_2, y_2)$$$, внутри которого находятся 2 прямоугольника из выключенных диодов с координатами углов $$$(x_3, y_3)$$$, $$$(x_4, y_4)$$$ у первого и $$$(x_5, y_5)$$$, $$$(x_6, y_6)$$$ у второго. При этом правый нижний угол первого выключенного прямоугольника должен совпадать с правым нижним углом внешнего прямоугольника, а другой выключенный прямоугольник должен находиться строго выше и не касаться границ других прямоугольников, также левые границы двух выключенных прямоугольников должны совпадать, то есть $$$x_1 \lt x_3 = x_5 \lt x_6 \lt x_4 = x_2$$$ и $$$y_1 = y_3 \lt y_4 \lt y_5 \lt y_6 \lt y_2$$$.

  • Любое другое состояние табло считается буквой X.

По виду табло определите, какая буква на нём изображена.

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

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

В следующих $$$n$$$ строках находятся строки длины $$$n$$$ из символов «.» и «#» — строки таблицы. «.» обозначает выключенный квадратный диод табло, а «#» — горящий.

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

Программа должна вывести единственный символ: если данная таблица подходит под одно из описаний букв I, O, C, L, H, P, то выведите её (все буквы — английские). Если же данная таблица не подходит ни под какие условия, то выведите X.

Примеры
Входные данные
4
.##.
.##.
.##.
....
Выходные данные
I
Входные данные
5
#...#
.#.#.
..#..
.#.#.
#...#
Выходные данные
X