P
pro·school.ru
Каталог школ
💻 ВсОШ · Пригласительный этап · 2026/2027

Олимпиада по информатике 6–7 классыпригласительный этап ВсОШ 2026/2027: задания и ответы

Официальный комплект пригласительного этапа Всероссийской олимпиады школьников по информатике для 6–7 классов (2026/2027 учебный год). Задания и решения с критериями оценивания — скачайте PDF или прорешайте онлайн по тексту ниже.

Просмотр PDF: ЗаданияОткрыть в новой вкладке ↗

Задания — текст для прорешивания

Текст извлечён из официального PDF автоматически: формулы, таблицы и рисунки могут отображаться неточно — сверяйтесь с документом выше.

Пригласительный этап ВсОШ 2026, информатика (программирование), 6-7 классы

Задания с вводом ответа 1

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

программирования не требуется) и три — по программированию. 2

. Выполняйте задания в любом удобном для вас порядке. Обязательно нажимайте кнопку «Ответить»,

иначе ваши ответы не будут проверены. 3

. Решения можно сохранять несколько раз. В заданиях 1 —3 засчитывается последний сохранённый ответ.

В заданиях 4 —6 засчитывается попытка, набравшая наибольшее количество баллов. За каждую задачу начисляется до 100 баллов. Максимальный балл за все задания тура — 600.

№1

100 баллов

Кодовый замок На кодовом замке всего три кнопки с цифрами «1 », «2 » и «3 ». Код от замка состоит из трёх цифр. Замок откроется, если эти три цифры набрать на замке подряд в нужном порядке. Например, если нажать клавиши в последовательности 1 , 2 , 3 , 2 , 1 , то замок откроется, если на нём был установлен один из следующих кодов: 123, 232, 321. Придумайте самую короткую последовательность нажатий на кнопки, которая откроет замок при любом установленном на нём коде. Чем короче будет ваша последовательность, тем больше баллов вы получите.

1/7

№2

100 баллов

Билеты в кинотеатр Сегодня премьера нового фильма. Вы пришли к открытию кассы, но перед вами в очереди уже стоят n

человек. Билеты продают три кассира. Первый кассир обслуживает одного посетителя за 30 секунд,

второй — за 50 секунд, третий — за 75 секунд. Очередь за билетами одна, и стоящий в начале очереди отправляется к первому освободившемуся кассиру. Все кассиры начинают работать одновременно. Сколько времени вам нужно ждать в очереди? Например, если n = 4 , то вам придётся ждать 50 секунд: первые три человека уйдут к трём кассирам, через 30

секунд вашего ожидания освободится первый кассир и к нему уйдёт четвёртый человек из очереди,

а через 50 секунд освободится второй кассир, и вы попадёте к нему. Для выполнения этого задания вам даны 20 значений n . Вы должны найти ответ для каждого из них. Значения содержатся в файле, который вы можете скачать в формате электронной таблицы Libre Office Calc или Microsoft Excel. В одной строке таблицы записано одно значение n . Также вы можете скачать файл csv, в каждой из 20 строк которого записано число n . Вам необходимо получить ответ для каждого из 20 наборов. Для проведения вычислений вы можете использовать любые средства компьютера, например, электронные таблицы или языки программирования. Ответ нужно записать в виде 20 чисел, ответ на каждый набор данных записывается в отдельной строке. Всего в ответе должны быть 20 строк, содержащих ровно по одному целому числу. Если вы используете электронные таблицы для выполнения задания, вы можете получить ответ в блоке, содержащем 20 строк, скопировать его и вставить в поле для ввода ответа. Если вы не можете дать ответ для какого‑либо набора, нужно написать любое целое число. Каждый правильный ответ будет оцениваться в 5 баллов. Ничего, кроме ответа на данные тестовые наборы, сдавать не надо.

2/7

№3

100 баллов

Розарий Розарий представляет собой квадрат размером 8 × 8. В каждую его клетку можно посадить розы или оставить клетку свободной. Розы нельзя сажать слишком тесно — если в какой-то клетке посадить розы, то из четырёх соседствующих с ней по стороне клеток розы должны быть посажены не более чем в двух. Соблюдая эти правила, отметьте на схеме максимальное количество клеток, в которые получится посадить розы. Чем больше клеток, занятых розами, будет в вашем ответе, тем больше баллов вы получите.

Задания по программированию

. В этом блоке вам будет предложено три задачи по программированию (можно использовать следующие

языки программирования: Python 3 , C++, Kotlin, PascalABC.NET, C#, Java, Go, PHP, Кумир, Rust). Подробнее о требованиях к программам можно прочитать в инструкции на сайте олимпиады. 2

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

наибольшее количество баллов. Отправить новое решение задачи можно через 30 секунд после предыдущей попытки. 3

. Убедитесь, что ваше решение не выводит никаких иных сообщений, кроме тех, которые описаны

в условии задачи. 4

. Если задача предполагает вывод целого числа, то его следует представить, используя только цифры.

Например, недопустимо использование записи 1000000.0 или 1e6 вместо 1000000.

3/7

№1

100 баллов

Аргайл Ограничение по времени: 1 секунда Аргайл — узор из ромбов или квадратов, расположенных в шахматном порядке и образующих параллельные и поперечные полосы разных цветов. Название происходит от имени шотландского клана Кампбелл в графстве Аргайл. Особенную популярность этот орнамент получил в XX веке. Это случилось благодаря компании «Pringle of Scotland», которая стала выпускать элитный трикотаж с орнаментом «Аргайл», после чего он стал визитной карточкой аристократии. С тех пор узор не выходит из моды. Существует огромное количество цветовых решений этого орнамента. Особенно популярен этот узор на свитерах, жилетах, кардиганах, платьях, шарфах, носках и гетрах.

Сколько квадратов красного и зелёного цветов целиком помещаются на ткани размером n × n?

Формат входных данных Единственная строка входных данных содержит натуральное число n (1 ⩽ n ⩽ 109 ). Обратите внимание, что при заданных ограничениях для хранения ответа необходимо использовать 64

-битный тип данных, например, long long в C++, int64 в Free Pascal, long в Java.

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

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

Примеры

3 1 1 4 1 4

Код

Python 3

4/7

№2

100 баллов

Оптом — дешевле? Ограничение по времени: 1 секунда Петя и его друзья собираются отпраздновать успешное окончание учебного года. Для этого они решили приобрести n упаковок апельсинового сока и m упаковок яблочного сока и выделили на эти цели s рублей. Одна упаковка любого сока стоит r рублей. Однако можно приобретать сок коробками. Одна коробка содержит k упаковок сока одного вида и стоит p рублей (известно, что k ⋅ r > p). Друзья хотят приобрести как можно больше упаковок сока на имеющиеся деньги, но так, чтобы при этом было не менее n упаковок апельсинового сока и не менее m упаковок яблочного. Сколько упаковок сока смогут приобрести друзья при таком условии?

Формат входных данных В первой строке содержится целое число n (1 ⩽ n ⩽ 5 ⋅ 105 ) — необходимое количество упаковок апельсинового сока. Во второй строке содержится целое число m (1 ⩽ m ⩽ 5 ⋅ 105 ) — необходимое количество упаковок яблочного сока. В третьей строке содержится целое число r (1 ⩽ r ⩽ 1000) — цена одной упаковки сока (любого вида). В четвёртой строке содержится целое число k (2 ⩽ k ⩽ 106 ) — количество упаковок сока в коробке. В пятой строке содержится целое число p (1 ⩽ p < k ⋅ r ) — цена коробки, содержащей k упаковок сока. В шестой строке содержится целое число s (1 ⩽ s ⩽ 109 ) — количество денег, выделенных на покупку сока.

Формат выходных данных Выведите целое число — максимально возможное суммарное количество упаковок сока, которые получится приобрести. Если невозможно приобрести сок, соблюдая описанные условия, выведите −1 .

Система оценки Решения, правильно работающие, когда хотя бы одна из величин n или m делится на k нацело, будут оцениваться в 25 баллов.

Замечание В первом примере из условия нужно купить 8 упаковок апельсинового сока и 7 упаковок яблочного сока. Одна упаковка стоит 80 рублей, а коробка из 5 упаковок — 370 рублей. На 1110 рублей можно купить 3

коробки сока, например, две коробки апельсинового и одну коробку яблочного. Останется

1400 − 3 ⋅ 370 = 290

рублей: 240 рублей хватит на 3 упаковки яблочного сока (или 2 упаковки яблочного

и 1 — апельсинового), 50 рублей останется. Условия будут выполнены, всего приобретено 3 ⋅ 5 + 3 = 18

упаковок сока.

Во втором примере на 1200 рублей можно приобрести 5 коробок сока по 225 рублей. Если взять три коробки апельсинового сока и две коробки яблочного, то условия будут выполнены. Останется 1200 − 5 ⋅ 225 = 75

рублей, на которые ничего нельзя купить.

В третьем примере на 1100 рублей можно купить 2 коробки сока по 375 рублей: коробку апельсинового и коробку яблочного. Останется 1100 − 2 ⋅ 375 = 350 рублей, на которые нужно купить ещё три упаковки апельсинового и две упаковки яблочного сока. При стоимости упаковки в 80 рублей это сделать нельзя.

Примеры

8 7 80 5 370 1400 18

5/7

8 7 80 5 225 1200 25 8 7 80 5 375 1100 -1

6/7

№3

100 баллов

Арт-объект Ограничение по времени: 1 секунда Арт-объект представляет собой n колонн высотой a 1 , a 2 , …, a n сантиметров. Критики считают, что арт-объект станет выглядеть лучше, если высоты колонн будут идти по неубыванию, то есть высота каждой колонны должна быть не меньше высоты предыдущей колонны (a i ⩾ a i−1 для всех ).

i ⩾ 2

Поскольку порядок колонн нельзя менять (это разрушит замысел автора), колонны можно расположить на лестнице, высота ступеньки которой равна d . При этом на каждой ступеньке будет стоять одна колонна, а первая колонна должна стоять на первой ступеньке. Тогда высота первой колонны a 1 увеличится на d , высота второй колонны a 2 увеличится на 2d , значение a 3 увеличится на 3d и так далее. Чтобы арт-объект не стал слишком громоздким, нужно найти минимальную подходящую высоту ступеньки d , при которой высоты колонн станут неубывающими.

Формат входных данных Первая строка входных данных содержит целое число n (1 ⩽ n ⩽ 2 ⋅ 105 ) — количество колонн. В следующих n строках записаны высоты колонн a i , 1 ⩽ a i ⩽ 109 .

Формат выходных данных Программа должна вывести минимальную подходящую высоту ступеньки d . Если высоты колонн уже неубывают, необходимо вывести число 0 .

Система оценки Решения, правильно работающие при n ⩽ 2 , будут оцениваться в 20 баллов. Решения, правильно работающие при a i ⩽ 10 , будут оцениваться в 30 баллов.

Замечание В первом примере высоты колонн равны 1 , 5 , 2 , 7 , 5 . Если использовать лестницу со ступенькой d = 3, то высоты колонн станут 4 , 11, 11, 19, 20. Если взять ступеньку d = 2, то получатся высоты 3 , 9 , 8 , 15, 15, и тогда колонна номер 2 будет выше колонны номер 3 .

Примеры

5 1 5 2 7 5 3

Код

Python 3

7/7

Ответы и решения — показать

Официальные ответы и критерии оценивания жюри. Сначала решите задания самостоятельно.

Пригласительный этап всероcсийской олимпиады по программированию для 6–7 классов Образовательный центр «Сириус», 18-19 мая 2026

Разбор задач

Задача 1. Кодовый замок

Нам нужно составить строку наименьшей длины из цифр «1», «2», «3», содержащую в качестве подстрок все возможные строки длины 3 из этих же цифр. Таких подстрок существует 27, поэтому ответ должен иметь длину не менее 29 символов: первые 3 символа дают одну подстроку длины 3, добавление каждого следующего символа добавляет ещё одну подстроку. Пример строки длины 29, удовлетворяющей условию задачи: 11121131222123132133322323311. Опишем возможный способ получения такой строки. Рассмотрим граф из 9 вершин, соответствующих подстрокам длины 2: «11», «12», «13», «21», «22», «23», «31», «32», «33». Соединим вершины рёбрами, из каждой вершины будут выходить 3 ребра, одно ребро соответствует одной добавляемой цифре. Ребро ведёт в вершину, которой сопоставлены последние 2 символа полученной последовательности. Например, из вершины «12» ребро с цифрой «1» ведёт в вершину «21», ребро «2» ведёт в вершину «22», а ребро «3» ведёт в вершину «23». Проход по одному ребру соответствует подстроке длины 3 (две цифры — это последовательность, записанная в вершине, третья цифра записана на ребре). Чтобы все возможные строки длины 3 встретились, нужно построить путь, содержащий все рёбра. Поскольку граф связный, в каждую вершину входит ровно 3 ребра и выходит ровно 3 ребра, то можно построить замкнутый путь, содержащий все рёбра ровно по одному разу, он и будет соответствовать кратчайшей искомой последовательности.

Задача 2. Билеты в кинотеатр

Для маленьких значений n ответ можно получить моделированием процесса вручную. К первому кассиру покупатели будут подходить каждые 30 секунд, то есть через 0, 30, 60, 90, 120, 150, ... секунд после начала продажи билетов. Ко второму кассиру покупатели будут подходить через 0, 50, 100, 150, ... секунд. К третьему — через 0, 75, 150, .... секунд. Если объединить все эти списки вместе и упорядочить их, то мы получим время ожидания для разных значений n. n Ответ 0 0 1 0 2 0 3 30 4 50 5 60 6 75 7 90 8 100 9 120 10 150 11 150 12 150 Через 150 секунд освободятся все три кассира, так как 150 является наименьшим общим кратным чисел 30, 50, 75. За это время кассиры вместе обслужат 10 покупателей. И далее последовательность повторяется, с добавлением 150 секунд при каждом увеличении значения n на 10. Поэтому ответ для n = 33 равен 3 · 150 + 30 = 480, а ответ для n = 89 равен 8 · 150 + 120 = 1320. Для вычисления ответа для больших значений n можно использовать электронные таблицы или написать программу. Ответ: 60 75 150 480 1320 1440 Страница 1 из 5

Пригласительный этап всероcсийской олимпиады по программированию для 6–7 классов Образовательный центр «Сириус», 18-19 мая 2026 1800 4150 5750 8550 12990 15050 68500 106425 125850 440773800 458875410 1010774250 1274073480 1499999970

Задача 3. Розарий

Наибольшее количество цветов, которое можно разместить в розарии, равно 44. На рисунке приведён один из вариантов решения.

Задача 4. Аргайл

Первая подзадача: Если посмотреть на получившийся узор, то можно заметить, что новый ряд зелёных квадратов появляется при каждом чётном n, а новый ряд красных — на каждом нечётном, начиная с 3. Таким Страница 2 из 5

Пригласительный этап всероcсийской олимпиады по программированию для 6–7 классов Образовательный центр «Сириус», 18-19 мая 2026 образом, можно перебрать все промежуточные значения, увеличивая счётчик рядов на 1 при каждом выполнении условия чётности или нечётности для определённого цвета. Такое решение наберёт 50 баллов. n = int ( input ( ) ) red = 0 f o r i in range ( 2 , n + 1 ) : i f i % 2 == 1 : r e d += 1 green = 0 f o r i in range ( 1 , n + 1 ) : i f i % 2 == 0 : g r e e n += 1 print ( r e d ∗∗ 2 ) print ( g r e e n ∗∗ 2 ) Полное решение. Воспользуемся операциями целочисленного деления. Один зелёный квадрат располагается на квадрате 2 × 2, поэтому ответ для этого цвета будет равен (n // 2) ** 2. Если убрать полосы шириной 1 слева и снизу ткани, то ответ для красного цвета сведётся к предыдущему: теперь один красный квадрат располагается на квадрате 2 на 2, поэтому ответ для этого цвета будет равен ((n - 1) // 2) ** 2. n = int ( input ( ) ) r e d = ( ( n − 1 ) // 2 ) ∗∗ 2 g r e e n = ( n // 2 ) ∗∗ 2 print ( r e d ) print ( g r e e n )

Задача 5. Оптом — дешевле?

Прежде всего отметим, что всегда выгодно купить коробку вместо k отдельных упаковок сока. Поэтому при необходимости приобрести определённое количество упаковок сока, нужно посчитать количество полных упаковок, взяв частное от деления на k, и остаток от деления на k будет равен количеству отдельных упаковок, которое необходимо приобрести. Рассмотрим сначала случай, когда хотя бы одна из величин n или m делится нацело на k. Для определённости будем считать, что n = boxesN · k, а m = boxesM · k + packsM (при необходимости следует поменять местами n и m в рассуждениях). Это значит, что на апельсиновый сок друзья должны потратить boxesN · p рублей, а на оставшиеся деньги они приобретут максимально возможное количество упаковок яблочного сока. Если это количество окажется не меньше m, то условия задачи будут выполнены. Пример решения. n = int ( input ( ) ) m = int ( input ( ) ) r = int ( input ( ) ) k = int ( input ( ) ) p = int ( input ( ) ) s = int ( input ( ) )

# Тр е б у етс я пе р в о г о с о ка # Тр е б у етс я вто р о г о с о ка # Цена упак о вки с о ка # Колич е ств о упак о в о к с о ка в к о р о б к е # Цена к о р о б ки с о ка # Сумма д ене г

i f n % k != 0 : n , m = m, n boxesN = n // k

# к о р о б о к пе р в о г о с о ка

rem = s − boxesN ∗ p # о станетс я д ене г по с л е прио б р етения пе р в о г о с о ка boxes = rem // p # к олич е ств о к о р о б о к , купл енно е на о ста вшие с я д ень г и Страница 3 из 5

Пригласительный этап всероcсийской олимпиады по программированию для 6–7 классов Образовательный центр «Сириус», 18-19 мая 2026 packs = ( rem % p ) // r д ень г и

# к олич е ств о упак о в о к , купл енно е на о ста вшие с я

packsRem = boxes ∗ k + packs о ста вшие с я д ень г и

# с умма рно е к олич е ств о упак о в о к , купл енно е на

i f packsRem >= m: ans = n + packsRem else : ans = −1 print ( ans ) Для полного решения заметим, что нет разницы, на какой вид сока потратить излишек денег. Давайте считать, что первого сока мы купим столько, сколько необходимо, а излишки потратим на покупку максимального количества второго сока. Но возможны два способа приобрести первый сок: приобрести ровно n упаковок целыми коробками и отдельными упаковками или вместо отдельных упаковок приобрести одну дополнительную коробку сока. На оставшиеся деньги приобретается максимальное количество второго сока, как в предыдущем решении. Пример решения на языке Python. n = int ( input ( ) ) m = int ( input ( ) ) r = int ( input ( ) ) k = int ( input ( ) ) p = int ( input ( ) ) s = int ( input ( ) ) ans = −1

# Тр е б у етс я пе р в о г о с о ка # Тр е б у етс я вто р о г о с о ка # Цена с о ка # Кол−в о с о ка в к о р о б к е # Цена упак о вки # Сумма д ене г

boxesN = n // k packsN = n % k

# к о р о б о к пе р в о г о с о ка # упак о в о к пе р в о г о с о ка

rem = s − boxesN ∗ p − packsN ∗ r # о станетс я д ене г по с л е прио б р етения n упак о в о к пе р в о г о с о ка i f rem >=0: boxes = rem // p packs = ( rem % p ) // r i f packs + boxes ∗ k >= m: ans = max( ans , packsN + boxesN ∗ k + packs + boxes ∗ k ) boxesN += 1 # д о б а вим о дну к о р о б ку пе р в о г о с о ка packsN = 0 # а упак о вки прио б р етать не б у д ем rem = s − boxesN ∗ p − packsN ∗ r i f rem >= 0 : boxes = rem // p packs = ( rem % p ) // r i f packs + boxes ∗ k >= m: ans = max( ans , packsN + boxesN ∗ k + packs + boxes ∗ k ) print ( ans )

Задача 6. Арт-объект

При n = 1 последовательность из одной колонны уже неубывающая, поэтому нужно вывести 0. При n = 2, если a0 > a1 , то ответ будет равен a0 − a1 , иначе ответ 0. Разобрав эти два случая, можно набрать 30 баллов. Страница 4 из 5

Пригласительный этап всероcсийской олимпиады по программированию для 6–7 классов Образовательный центр «Сириус», 18-19 мая 2026 Если высоты колонн небольшие, то можно перебрать значения d. Прибавив к значениям ai нужные значения, проверим, что мы получили неубывающую последовательность. Такие решения будут набирать не менее 30 баллов. Пример такого решения. n = int ( input ( ) ) a = [ int ( input ( ) ) f o r i in range ( n ) ] d = 0 while True : i = 1 while i < n and a [ i − 1 ] <= a [ i ] : i += 1 i f i == n : print ( d ) break fo r i in range ( n ) : a [ i ] += i + 1 d += 1 Для того чтобы набрать полный балл, можно заметить, что если разница между двумя соседними значениями ai − ai+1 положительна, то ответ должен быть не меньше этой разницы. Поэтому минимальное значение ответа будет равно наибольшему из значений ai − ai+1 . Этот максимум можно вычислить сразу при считывании данных, необязательно сохранять все значения ai в массиве, достаточно запоминать только значение высоты предыдущей колонны. Пример такого решения. n = int ( input ( ) ) ans = 0 prev = 0 f o r i in range ( n ) : c u r r = int ( input ( ) ) ans = max( ans , prev − c u r r ) prev = c u r r print ( ans )

Страница 5 из 5

Теория к заданиям: информатика, 6 класс

Пригласительный этап 2026/2027 — другие классы

Все классы →

Олимпиада по информатике 6 класс — другие годы и этапы

Все комплекты →