Школьный этап, 7–8 классы всероссийской олимпиады по информатике: 6 задач с официальным разбором, к 3 из них наше решение на C++.

К задаче 1

Школьный этап ВсОШ по информатике 2025/26, 7–8 классы.

Сириус, первая группа регионов, 21 октября 2025Условия PDFРазбор PDFАрхив с тестами

Задачи тура

Отмечайте решённые: 0 из 6

1. Прикольные числа

перебор, цифры числа

Мышке Марине подарили на день рождения большую доску. Так как она очень любит четырёхзначные числа, она сразу начала думать, что написать на подаренной доске. Больше всего Марина любит те числа, которые называются прикольными. Она любезно поделилась с нами критериями, которые делают их более прикольными:

  • В числе есть цифра 8.
  • Сумма цифр числа равна 14.
  • В числе все соседние цифры различаются.
  • В числе две пары равных цифр.

Чем больше из этих критериев выполнено, тем более прикольным считается число.

Мышка Марина захотела написать на доске минимальное и максимальное четырёхзначные числа без ведущих нулей, которые бы отвечали наибольшему числу этих критериев. Помогите ей с этим.

В ответе запишите два четырёхзначных числа: сначала минимальное, в следующей строке — максимальное.

Официальный разборСначала попробуйте решить сами

2. Собрание сочинений

перестановки, конструктив

На полке стоит собрание сочинений одного автора из 9 томов, пронумерованных числами от 1 до 9. Библиотекарь за одно действие может взять с полки один или несколько подряд идущих томов и поставить их между какими-то другими томами на полке, либо в начало, либо в конец полки. Например, если на полке стояли тома 1, 2, 3, 4, 5, 6, то можно получить, например, последовательность 4, 5, 1, 2, 3, 6 (тома 4 и 5 перемещаются в начало) или последовательность 1, 2, 4, 5, 3, 6 (тома 4 и 5 вставляются между томами 2 и 3).

Изначально тома стоят в следующем порядке:

6, 2, 7, 8, 4, 5, 1, 9, 3

Необходимо переставить их в порядке 1, 2, 3, 4, 5, 6, 7, 8, 9, используя минимальное число описанных операций.

Определите порядок следования томов на полке после совершения каждой операции. В одной строке ответа записывайте последовательность номеров томов от 1 до 9 после выполнения данной операции. Запятые, пробелы и другие символы не требуются. В первой строке должна быть записана исходная расстановка «627845193», в последней строке — искомая «123456789». Строки ответа должны получаться из предыдущих при помощи описанных операций. Чем меньше операций будет в вашем решении, тем больше баллов вы получите.

Официальный разборСначала попробуйте решить сами

3. Сигнализация

логика, булевы функции

Слон Семён программирует сигнализацию. У него есть три датчика, передающие показания в виде логических значений («ложь» или «истина»). Если хотя бы два датчика передают «истину», нужно включить сирену, если нет — её включать не надо.

Обозначем выходы от датчиков переменными . Программа для сигнализации представляет собой логическое выражение от , в котором могут использоваться сами переменные, пробелы, круглые скобки, операции and (логическое И) и or (логическое ИЛИ). Другие операции и константные логические значения использоваться не могут. Сирена включается, когда результат выражения равен «истине».

Чтобы сэкономить память контроллера, Слон Семён хочет использовать как можно меньше логических операций. Помогите ему составить программу.

При записи ответа имена переменных и названия операций разделяйте пробелом. Символы, не описанные в условии, использовать нельзя. Длина ответа не должна превышать 100 символов.

Чем меньше операций and и or будет в вашем решении, тем больше баллов вы получите.

Пример записи ответа: (x and y) or (z and z). Такая программа использует три логические операции, однако не подойдёт для сигнализации.

Если значение «ложь» обозначить числом «0», а «истину» обозначить «1», то значения операций x and y и x or y для всех возможных значений и приведены в таблице.

x  y  x and y  x or y
0  0     0        0
0  1     0        1
1  0     0        1
1  1     1        1

При отсутствии скобок операция and имеет больший приоритет, чем операция or, то есть выражение x and y or z and z обозначает (x and y) or (z and z).

Официальный разборСначала попробуйте решить сами

4. Рекламные паузы

0.5 секунд, математика, целочисленное деление

Слон Семён включил в онлайн-кинотеатре новый фильм «Матрица». После каждых минут показа фильма вставляется реклама длиной минут. Но если в момент планируемого начала рекламного блока фильм завершается, то рекламу не показывают.

Фильм без рекламы длится минут. Сколько времени займёт показ всего фильма вместе с рекламой?

Формат входных данных

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

Вторая строка содержит одно целое число () — длительность одного рекламного блока.

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

Формат выходных данных

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

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

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

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

Замечание

В первом примере будут показаны 4 рекламных блока через 20, 40, 60, 80 минут показа фильма.

Во втором примере будут показаны 3 рекламных блока через 30, 60, 90 минут показа фильма.

стандартный вводстандартный вывод
20
5
90
110
стандартный вводстандартный вывод
30
4
120
132
Официальный разборСначала попробуйте решить сами
Наше решение на C++Полный код на C++17

5. Популярный пост

0.5 секунд, математика, жадный алгоритм

В новом мессенджере «Дружба» разработчики предусмотрели возможность оставить реакцию под сообщением. Каждый пользователь может оставить даже две разные реакции, но больше двух реакций выбрать нельзя. Под некоторым сообщением пользователи оставили реакций «Согласен», реакций «Не согласен» и реакций «Забавно». Какое минимальное количество пользователей могло отреагировать на данное сообщение?

Формат входных данных

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

Формат выходных данных

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

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

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

Замечание

В примере из условия два пользователя могли поставить реакции первого и третьего типов, третий пользователь поставил реакцию второго и третьего типов, а четвёртый пользователь — только реакцию третьего типа.

стандартный вводстандартный вывод
2
1
4
4
Официальный разборСначала попробуйте решить сами
Наше решение на C++Полный код на C++17

6. Раскраска стены

1 секунда, конструктив, раскраска

Длина кирпича в два раза больше его высоты, то есть его можно представить, как прямоугольник размером клетки. Стена сложена из рядов кирпичей, каждый ряд состоит из клеток. В любом ряду последовательность кирпичей сдвинута на 1 клетку по сравнению с вышележащим и нижележащим. То есть в каждом ряду может быть не более целых кирпичей, а в концах каждого ряда могут находиться половинки кирпичей. При этом в самом нижнем ряду слева лежит целый кирпич. На картинке приведён пример стены для и .

Пример стены из кирпичей
Пример стены из кирпичей

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

Формат входных данных

В первой строке входных данных записано число () — количество рядов кирпичей в стене. Во второй строке записано число () — длина каждого ряда кирпичей в клетках.

Формат выходных данных

Программа должна вывести строк, каждая из которых содержит ровно цифр от 1 до 9 — цвета, в которые покрашены клетки стены. Если две соседние клетки относятся к одному и тому же кирпичу, то они записываются одинаковыми цифрами, в противном случае — различными. Размещение кирпичей в вашей раскраске должно соответствовать условию задачи (на левом конце нижней строки находится целый кирпич). Используйте минимально возможное количество цветов (разрешены любые цифры от 1 до 9, но количество различных использованных цифр должно быть наименьшим возможным для данного размера стены).

Не допускаются пробелы и другие символы между цифрами, пробелы в началах и на концах строк, пустые строки в выводе программы.

стандартный вводстандартный вывод
2
4
1223
3311
стандартный вводстандартный вывод
3
2
66
28
66
Официальный разборСначала попробуйте решить сами
Наше решение на C++Полный код на C++17

Сначала решите сами

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

Готовиться самому

Платформа с задачами

1400+ задач с автопроверкой

или
Пробное занятие

Призёр ВсОШ, первое бесплатно