Региональный этап 2026 всероссийской олимпиады школьников по программированию информатика задания, ответы и решения для 9, 10, 11 класса. Данная олимпиада прошла у школьников 17-19 января 2026 года. Предварительные результаты ВСОШ будут известны позднее. Критерии и решение опубликованы после заданий.
→ Задания 1-2 дня: скачать
→ Решение и ответы: скачать
→ Тесты и решения жюри: скачать
В тестирующей системе участникам доступны полные протоколы проверки и исходные коды отправленных решений. Обращаем внимание, что по задаче 2 первого тура по решению центральной предметно-методической комиссии было проведено перетестирование.
Олимпиада по программированию 9, 10, 11 класс региональный этап 2026
inf-program-region-2026-zadanieРазбор задач олимпиады по программированию 2026
reshenie-olimp-region-2026-programЗадача 1. Итоги олимпиады
Ограничение по времени: 1 секунда Ограничение по памяти: 512 мегабайт Школьники из кружка по информатике «Капибары кодят» участвуют в олимпиаде. По итогам олимпиады i-й школьник набрал ai баллов. Чтобы поощрить участников, руководитель кружка Александр Сергеевич решил раздать школьникам конфеты. Для всех i и j, если i-й школьник набрал больше баллов, чем j-й, то руководитель даёт i-му школьнику ai − aj конфет. Помогите руководителю понять, сколько суммарно конфет ему необходимо подготовить для раздачи школьникам. Формат входных данных В первой строке входных данных задается число n — количество школьников (1 6 n 6 500 000). Вторая строка содержит n целых чисел ai — результаты участников кружка на олимпиаде (0 6 ai 6 107 ).
Формат выходных данных Выведите единственное число — общее количество конфет, которое необходимо подготовить, чтобы раздать школьникам. Обратите внимание, что ответ в этой задаче может превышать возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#). Система оценки Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
В первом примере первый школьник не получит конфет, второй школьник получит 1 конфету, третий школьник получит 1 + 2 = 3 конфеты, четвертый школьник получит 1 + 2 + 3 = 6 конфет, пятый школьник получит 1 + 2 + 3 + 4 = 10 конфет.
Задача 2. Хромой король
Ограничение по времени: 1 секунда Ограничение по памяти: 512 мегабайт Хромой король перемещается по клетчатой доске размером n × m, каждый раз переходя из текущей клетки в соседнюю по стороне. Будем задавать клетку в ряду x столбце y как (x, y). Хромой король должен посетить все клетки, побывав в каждой клетке ровно один раз, и вернуться в начальную клетку. При этом на доске выделены две соседние клетки: (x1, y1), (x2, y2). В обходе доски королем клетки (x1, y1) и (x2, y2) должны встречаться подряд: оказавшись в одной из них, он должен сразу же перейти в другую. Выведите подходящий порядок обхода доски или выясните, что его не существует.
Формат входных данных
Первая строка содержит два числа n и m (2 6 n, m 6 1000) — размеры доски. Вторая строка содержит четыре числа x1, y1, x2, y2 — координаты двух соседних клеток (1 6 x1, x2 6 n; 1 6 y1, y2 6 m; |x1 − x2| + |y1 − y2| = 1).
Формат выходных данных
Если такого обхода доски не существует, выведите одно число −1. Иначе выведите n×m+ 1 пару чисел — координаты клеток в порядке обхода, начальную клетку необходимо вывести дважды, в начале и в конце.
Система оценки
В этой задаче 50 тестов, каждый оценивается независимо в 2 балла. В этой задаче во время тура вам сообщается результат проверки на каждом тесте.
Задача 3. Расстановки фишек
Ограничение по времени: 1 секунда Ограничение по памяти: 512 мегабайт
Дана квадратная доска размера m × m. Строки и столбцы доски пронумерованы от 1 до m. Требуется расставлять на доске фишки так, чтобы в каждой клетке находилось не более одной фишки. При этом должны выполняться n ограничений. В i-м ограничении заданы два целых числа ri и ci , означающие, что в прямоугольнике, состоящем из клеток с координатами [1 . . . ri ] × [1 . . . ci ], может находиться не более одной фишки. Определите остаток от деления количества различных расстановок фишек, удовлетворяющих всем ограничениям, на 109 + 7.
Формат входных данных Первая строка входных данных содержит целые числа n и m — количество ограничений и размер доски (1 6 n 6 2 · 105 , 1 6 m 6 109 ). Далее следуют n строк, в каждой из которых записаны два числа ri и ci (1 6 ri , ci 6 m). Формат выходных данных Выведите одно число — количество допустимых расстановок фишек, взятое по модулю 109 + 7. В первом примере на всей доске может быть поставлено не более одной фишки. Есть 4 × 4 = 16 вариантов поставить одну фишку и 1 вариант с нулём расставленных фишек.
Задача 4. Прыжки по вершинам
Ограничение по времени: 1 секунда Ограничение по памяти: 512 мегабайт В компьютерной игре «Мегапрыжок» герой прыгает между вершинами горной цепи с целью попасть на точку с флагом, где завершается уровень. Горная цепь в игре состоит из n подряд идущих зубцов, i-й из которых находится в позиции i и имеет высоту hi . При этом для любых i < j герой может прыгнуть по прямой с зубца i на зубец j, при условии, что во время полёта по прямой на его пути не будет других зубцов. Более формально, не найдётся такого k, что i < k < j и вершина k-го зубца — точка с координатами (k, hk) — находится строго выше отрезка, соединяющего точки (i, hi) и (j, hj ). Компания «Победи ИИ» занимается тренировкой нейросети для управления героем в этой игре.
Для создания тренировочных данных необходимо ответить на несколько запросов: для пары индексов l, r (1 6 l 6 r 6 n) выяснить, за какое минимальное число прыжков, начав на зубце с номером l, герой сможет попасть на зубец с номером r.
Формат входных данных В первой строке входных данных находится число n (1 6 n 6 105 ) — число зубцов. Во второй строке находятся n чисел: h1, h2, . . . , hn (0 6 hi 6 1012) — высоты зубцов. В третьей строке находится число q (1 6 q 6 105 ) — количество запросов. В каждой из следующих q строк находятся два числа li , ri (1 6 li 6 ri 6 n) — параметры очередного запроса.
Формат выходных данных Для каждого запроса в отдельной строке выведите целое неотрицательное число — минимальное необходимое число прыжков.
Задача 5. Покраска бруска
Ограничение по времени: 1 секунда Ограничение по памяти: 512 мегабайт На фабрике изготавливают цветные кубики. Для этого берётся заготовка — деревянный брусок a × b × c. Сначала его распиливают на a · b · c единичных кубиков, а потом каждый кубик окрашивается со всех сторон. Однако из-за ошибки в программе для станка, написанной с помощью системы вайб-кодинга «Кодер 239», в этот раз всё произошло наоборот: сначала стороны бруска были покрашены со всех сторон, а затем он был распилен на единичные кубики.
Из-за этого у разных кубиков в этой партии могло оказаться разное количество покрашенных сторон. Для оценки ущерба необходимо посчитать количество кубиков, у которых покрашено ровно k сторон. Формат входных данных Единственная строка содержит четыре числа: a, b, c (1 6 a, b, c 6 105 ) — размеры бруска, — и число покрашенных сторон кубика k (0 6 k 6 6). Формат выходных данных Выведите одно число — количество единичных кубиков с заданным числом покрашенных сторон. Система оценки В этой задаче 20 тестов, каждый оценивается независимо в 5 баллов. В этой задаче во время тура вам сообщается результат проверки на каждом тесте.
Задача 6. Битовая магия
Ограничение по времени: 1 секунда Ограничение по памяти: 512 мегабайт Даны три неотрицательных целых числа b, l и r, записанные в шестнадцатеричной системе счисления. Напомним, что шестнадцатеричная система счисления (основание 16) использует цифры 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, где A соответствует числу 10, B — 11, C — 12, D — 13, E — 14, F — 15. Например, число 1F в шестнадцатеричной системе равно 1 · 16 + 15 = 31 в десятичной системе. Операция & обозначает побитовое AND (побитовое «И») над двоичными представлениями чисел. Рассмотрим двоичные записи чисел x и b, при необходимости дополним их слева нулями до равной длины. Для каждого разряда i: (x & b)i = ( 1, если xi = 1 и bi = 1, 0, иначе. То есть в каждом бите результат равен 1 тогда и только тогда, когда в этом бите у обоих чисел стоит 1. Определите количество целых чисел x, таких, что l 6 x 6 r и выполняется условие x & b = b. Выведите остаток от деления этого количества на 109 + 7.
Формат входных данных Во входных данных даны три строки: первая строка содержит число l, вторая строка содержит число r, третья строка содержит число b. Каждое число задано в шестнадцатеричной системе счисления без ведущих нулей (кроме случая самого числа 0) и состоит из символов 0–9, A–F. Длина каждой строки не превосходит 50 000 символов. Гарантируется, что 0 6 l 6 r.
Формат выходных данных Выведите одно целое число — количество значений x, для которых выполняются условия задачи, по модулю 109 + 7. Ответ выведите в десятичной системе счисления без ведущих нулей. Система оценки Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Задача 7. Скользящие окна
Ограничение по времени: 2 секунды Ограничение по памяти: 512 мегабайт Рассмотрим массив чисел b1, . . . , bm. Скользящими окнами длины k (k 6 m) на этом массиве назовем все подотрезки длины k, то есть отрезки [b1, . . . , bk], [b2, . . . , bk+1], . . . , [bm−k+1, . . . , bm]. Дан массив чисел a1, . . . , an длины n. Необходимо ответить на q запросов следующего вида про этот массив: для заданных l, r, k найти сумму минимумов на скользящих окнах длины k на подотрезке [al , . . . , ar]. Формат входных данных В первой строке входных данных даны два целых числа n и q (1 6 n, q 6 100 000) — длина массива и количество запросов.
Во второй строке даны n целых чисел a1, . . . , an (1 6 ai 6 109 ) — значения чисел в массиве. В следующих q строках даны запросы. В i-й из них даны три целых числа li , ri и ki (1 6 l 6 r 6 n, 1 6 k 6 r − l + 1) — левая и правая границы отрезков и длина скользящего окна в i-м запросе. Формат выходных данных Выведите q строк с ответами на запросы. В i-й строке выведите единственное число — сумму минимумов на скользящих окнах длины ki на подотрезке [ali , . . . , ari ].
Задача 8. XOR Раскраска
Ограничение по времени: 2 секунды Ограничение по памяти: 512 мегабайт Даны два массива неотрицательных целых чисел A = [a1, a2, . . . , an] и B = [b1, b2, . . . , bm]. Пусть S(i) = {j|(ai ⊕ bj ) 6 x}. Иными словами, S(i) это множество всех индексов j массива B, для которых побитовое исключающее или ai и bj не превосходит x. Требуется найти минимальное число k, чтобы можно было покрасить элементы массива A в k цветов таким образом, что если S(x) и S(y) пересекаются, то x и y покрашены в разный цвет.
Иначе говоря, можно найти такие c1, c2, . . . , cn, что 1 6 ci 6 k, и при этом если S(x) ∩ S(y) 6= ∅, то cx 6= cy. Напомним, что побитовое «исключающее или» (, xor) двух целых неотрицательных чисел определяется следующим образом: запишем оба числа в двоичной системе счисления, i-й двоичный разряд результата равен 1, если ровно у одного из аргументов он равен 1. Например, (14 xor 7) = (11102 01112) = 10012 = 9. Эта операция реализована во всех современных языках программирования, в языках C++, Java и Python она записывается как «ˆ», в Паскале как «xor».
Формат входных данных
Входные данные для этой задачи содержат несколько тестовых примеров. Первая строка ввода содержит одно целое число t (1 6 t 6 100) — количество тестовых примеров. Далее следуют описания тестовых примеров. В первой строке каждого тестового примера записаны три целых числа n, m и x (1 6 n, m 6 500 000, 0 6 x < 2 30). Во второй строке записаны n целых чисел a1, a2, . . . , an — элементы массива A (0 6 ai < 2 30). В третьей строке записаны m целых чисел b1, b2, . . . , bm — элементы массива B (0 6 bi < 2 30). Гарантируется, что как сумма значений n, так и сумма значений m по всем тестовым примерам не превосходит 500 000.
Смотрите на сайте олимпиады задания прошлых лет
Региональный этап 2025 олимпиада по информатике 9, 10, 11 класса задания и ответы
