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

К задаче 1

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

Сириус, первая группа регионов, 20 октября 2026Условия PDFРазбор PDF

Задачи тура

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

1. Разрезание полоски

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

В клетках полоски бумаги записаны цифры:

Полоска с цифрами 5 2 1 3 8 7 4 9 6
Полоска с цифрами 5 2 1 3 8 7 4 9 6

Полоску разрезали пятью разрезами по клеточкам на шесть частей. Каждая часть состоит из одной или нескольких идущих подряд цифр. Цифры каждой части образуют одно число.

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

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

2. Редактирование строки

строки, конструктив

Исполнитель «Редактор» работает со строками, состоящими из букв английского алфавита. У исполнителя есть две команды.

  • A > B — заменить все буквы A в строке на буквы B;
  • AB > CD — заменить все пары соседних букв AB на пары букв CD. Эта команда выполняет замены слева направо, при этом заменённая буква не участвует в последующих заменах этой команды (но может быть заменена следующими командами).

В обозначениях команд буквами A, B, C и D обозначены произвольные буквы английского алфавита. Среди этих букв могут быть совпадающие. Например, если применить команду «AB > BA» к строке «ABBAB», то получится строка «BABBA» (пары символов, где произошли замены, подчёркнуты).

Напишите для исполнителя программу, которая из строки «ABBCBABCBA» получает строку «BCBDBABAAD». Чем меньше операций будет в вашем ответе, тем больше баллов вы получите.

В ответе выпишите операции по одной в строке, каждую в виде A > B или AB > CD. Знак > обязателен, пробелы вокруг него можно не писать.

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

3. Мобильный интернет

математика, электронные таблицы

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

Если абоненту требуется больше мегабайт, он может покупать дополнительные пакеты. Один пакет содержит 100 мегабайт и стоит рублей. Купить часть пакета нельзя.

Вам известен объём интернет-трафика , израсходованный абонентом за месяц. Сколько рублей ему необходимо заплатить за интернет?

Рассмотрим пример. Если , , , , то за абонентскую плату в 500 рублей пользователь получит 1000 мегабайт, и ему придётся дополнительно приобрести 8 пакетов по 100 мегабайт. Цена одного пакета 50 рублей, и всего пользователь заплатит рублей.

Для выполнения этого задания вам даны 20 наборов значений , , , . Вы должны найти ответ для этих наборов данных. Данные содержатся в файле, который вы можете скачать в формате электронной таблицы Libre Office Calc или Microsoft Excel. В одной строке таблицы записаны значения , , , :

  • — количество мегабайт, включённых в тариф;
  • — стоимость тарифа в рублях;
  • — стоимость одного дополнительного пакета в рублях;
  • — объём потреблённого за месяц интернет-трафика в мегабайтах.

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

Ответ запишите в виде 20 чисел, каждое в отдельной строке. Если вы не можете дать ответ для какого-либо набора, запишите любое натуральное число. Каждый правильный ответ будет оцениваться в 5 баллов.

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

4. Доставка в Простоквашино

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

Недавно почтальон Печкин прочитал в газете о новых роботах-доставщиках и решил использовать одного из них для развоза почты. Он планирует внедрять данную инновацию в деревне Простоквашино, которую можно представить как длинную улицу: в начале — отделение почты, за ним — жилые дома, расположенные в ряд на равном расстоянии друг от друга.

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

В качестве «тестового задания» Печкин хочет доставить с помощью робота журнал «Мурзилка» дяде Фёдору, который живет в -м по счёту от почты доме. Теперь ему предстоит выяснить, на какое минимальное число единиц энергии ему необходимо изначально зарядить робота, чтобы тот мог доехать от почты до дома дяди Фёдора.

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

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

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

В третьей строке содержится целое число () — номер (по счёту от здания почты) дома дяди Фёдора.

Гарантируется, что .

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

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

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

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

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

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

Замечание

В первом примере из условия достаточно зарядить робота на 6 единиц энергии. На дорогу до первого дома он потратит 2 единицы, и у первого дома он зарядится на 1 единицу, у него останется 5 единиц. После зарядки у второго дома останется 4 единицы энергии, у третьего — 3, у четвёртого — 2 и доставщику хватит энергии, чтобы добраться до пятого дома. Можно показать, что меньшего количества энергии роботу не хватит.

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

5. Места в автобусе

1 секунда, математика, разбор случаев

Нумерация мест в автобусе устроена так, как показано на рисунке.

Схема автобуса с номерами мест
Схема автобуса с номерами мест

На рисунке изображены первые пять рядов мест. Если в автобусе больше пяти рядов, последующие ряды нумеруются аналогично.

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

1. Идеально удобно — друзья сидят рядом, с одной стороны от прохода. Например, места 1 и 2 или 7 и 8.

2. Довольно удобно — друзья сидят в одном ряду, по разные стороны от прохода, оба места находятся у прохода. Например, места 2 и 4.

3. Можно играть — друзья сидят в соседних рядах, с одной и той же стороны от прохода. Например, места 1 и 5 или 4 и 7.

4. Невозможно играть — во всех остальных случаях.

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

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

В первой строке входных данных записано целое число — номер места первого друга.

Во второй строке записано целое число — номер места второго друга.

Числа и различны и удовлетворяют условиям , .

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

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

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

6. Кофе помогает от кофе

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

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

У Миши есть шагомер, который показывает, что сегодня он прошёл ровно шагов. За один шаг Миша проходит расстояние, равное 1; он может двигаться только параллельно осям координат.

Миша уверен, что утром он прошёл кратчайшим путём от дома до школы, а после школы — кратчайшим путём от школы до кофейни.

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

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

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

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

В пятой строке содержится целое число () — количество шагов, пройденных Мишей от дома до кофейни.

Все числа — целые, неотрицательные и не превосходят .

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

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

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

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

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

Замечание

Иллюстрация к первому примеру из условия.

Иллюстрация к первому примеру
Иллюстрация к первому примеру
стандартный вводстандартный вывод
0
0
2
2
6
-1 0
стандартный вводстандартный вывод
1
7
9
0
10
-1
Официальный разборСначала попробуйте решить сами
Наше решение на C++Полный код на C++17

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

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

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

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

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

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

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