Школьный этап ВСОШ по информатике 9-11 класс 2021 (1 группа регионов)
Statement is not available in English language
1. Отпуск
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Иван Петрович взял отпуск продолжительностью $$$n$$$ дней. Первый день отпуска выпадает на день недели под номером $$$d$$$ (1 — понедельник, 2 — вторник, ..., 7 — воскресенье). Иван Петрович любит ездить отдыхать на Кипр. Но вылеты на Кипр из его родного города есть только по понедельникам, а обратно — только по воскресеньям. Иван Петрович хочет понять, какое максимальное количество недель он сможет провести на Кипре в свой отпуск (день прилёта и день обратного вылета Иван Петрович считает днями, проведёнными на Кипре). Помогите ему вычислить это.

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

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

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

Требуется вывести одно целое число — количество недель, которое Иван Петрович проведёт на Кипре.

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

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

Примеры
Входные данные
14
1
Выходные данные
2
Входные данные
17
3
Выходные данные
1
Примечание

В первом примере отпуск продолжается 14 дней и начинается в понедельник. Поэтому Иван Петрович улетит на Кипр в первый день и вернётся в 14-й день, продолжительность пребывания на Кипре составит две недели.

Во втором примере отпуск начинается в среду. Ближайший понедельник будет 6-м днём отпуска. Ивану Петровичу придётся вернуться в воскресенье, которое будет 12-м днём отпуска. Следующее воскресенье будет 19-м днём отпуска, а продолжительность отпуска только 17 дней. Поэтому на Кипре Иван Петрович проведёт всего лишь одну неделю.

Statement is not available in English language
2. Гирьки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Васи есть чашечные весы и набор гирек. Правда, в наборе предусмотрены гирьки только двух различных весов: 1 и 2 грамма. Набор не пустой, но гирьки одного из весов могут быть потеряны и полностью отсутствовать. Вася пытается разложить все имеющиеся гирьки на обе чаши весов так, чтобы весы оказались в равновесии (то есть разложить все гирьки на две кучки одинакового веса). Оказалось, что у него имеется $$$n_1$$$ гирек весом 1 грамм и $$$n_2$$$ гирек весом 2 грамма. Получится ли у него это?

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

В первой строке входных данных записано целое число $$$n_1$$$, во второй — $$$n_2$$$ ($$$n_1\ge 0$$$, $$$n_2\ge 0$$$, $$$0 \lt n_1 + n_2 \leq 2\cdot 10^9$$$).

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

Если разложить гирьки на две равные кучки возможно, пограмма должна вывести слово Yes, в противном случае — No.

Если гирьки разложить возможно, то во второй строке требуется вывести два целых числа в указанном порядке: количество гирек весом 1 грамм и количество гирек весом 2 грамма в одной из кучек в разложении. Если вариантов разложения несколько, требуется вывести любой из них.

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

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

Примеры
Входные данные
2
1
Выходные данные
Yes
0 1
Входные данные
1
2
Выходные данные
No
Примечание

В первом примере также правильным ответом будет


Yes
2 0

Statement is not available in English language
3. Конструктор
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Сереже на первое сентября подарили магнитный конструктор, состоящий из брусков разной длины, которые могут соединяться концами друг с другом. В подарочном наборе все бруски уложены в порядке неубывания длины, причем бруски могут иметь одинаковую длину — это очень важно для Серёжи, потому что он будет собирать из брусков равносторонние треугольники для своего большого проекта. Для этого проекта Серёже нужно очень много деталей такой формы, и он хочет понять, сколько всего возможно собрать равносторонних треугольников из конструктора для последующего их одновременного использования в проекте. Размеры треугольников могут быть различными, но все они должны быть равносторонними. Определите, какое максимальное количество равносторонних треугольников можно собрать из конструктора (брусок, использованный в одном треугольнике, уже не может быть использован в другом).

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

В первой строке входных данных дано целое число $$$n$$$ — количество брусков ($$$1 \leq n \leq 10^5$$$). В следующих $$$n$$$ строках даны длины брусков конструктора — целые числа от 1 до $$$10^9$$$ по одному в строке. Числа даны в неубывающем порядке.

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

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

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

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

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

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

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

Statement is not available in English language
4. Обучение шахматам
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Маленькая Ева только учится играть в шахматы. Сегодня она узнала, как слон ходит по шахматной доске. Теперь она хочет понять, куда слон может добраться не более чем за 100 ходов. Помогите Еве понять, может ли слон добраться от одной клетки до другой клетки шахматной доски.

Шахматный слон за один ход перемещается по диагонали на любое количество клеток. Шахматная доска имеет размеры $$$8\times 8$$$.

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

Программа получает на вход 4 числа, записанных в отдельных строках. Первые два числа — номер строки и номер столбца исходной клетки, следующие два числа — номер строки и номер столбца конечной клетки (каждое число принимает значения от 1 до 8). Гарантируется, что исходная и конечная клетки не совпадают.

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

В первой строке выведите Yes или No — ответ на вопрос задачи. Если в первой строке вы вывели Yes, то во второй строке выведите число $$$n$$$ — количество ходов слона (число не превосходящее 100). В следующих $$$n$$$ строках выведите последовательно клетки (номер строки и номер столбца клетки через пробел), в которые нужно перемещать слона. Последняя выведенная клетка должна совпадать с заданной конечной клеткой.

Вам не нужно минимизировать число ходов слона, но оно не должно превосходить 100.

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

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

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

Statement is not available in English language
5. Интересные числа
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На занятиях математического кружка Сережа узнал об интересных числах — это числа, которые имеют простые делители только 2, 3 и 5. Теперь он хочет узнать наибольшее интересное число, не превосходящее числа $$$n$$$.

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

Программа получает на вход целое число $$$n$$$ ($$$2 \leq n \leq 10^{17}$$$).

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

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

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

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

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

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

Примеры
Входные данные
7
Выходные данные
6
Входные данные
100
Выходные данные
100
Примечание

Первые интересные числа — это 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30,....

Поэтому в первом примере максимальное интересное число, не превосходящее 7 — это 6.

Во втором примере число 100 разлагается на множители, как $$$100 = 2^2 \cdot 5^2$$$, поэтому число 100 само является интересным.