Открывается в новой вкладке

Мы всегда на связи

Пишите в любое удобное время:
whatsappvktelegramMAX
Или задайте вопрос через форму:

Мы всегда на связи

Заявка принята!

Мы уже получили заявку и скоро свяжемся. Расскажите немного о ребёнке — так быстрее подберём группу (необязательно).

Спасибо!

Мы свяжемся с вами в ближайшее время.

Как ворваться в олимпиадный мир

Онлайн-интенсив к школьному этапу ВсОШ по программированию!

С 10 октября!
Методисты ЮАЙТИ
07.10.2026

Меня зовут Матвей Грицаев. Школьником я много лет писал олимпиады — сначала по математике, потом по программированию, потом закончил ФКН ВШЭ. Больше десяти лет преподаю, а сейчас готовлю олимпиадную сборную .

Каждую осень мне задают одни и те же вопросы. С чего начать? Какие олимпиады писать? Почему ребёнок дома решает, а на олимпиаде пишет на ноль? В этой статье я собрал всё, что обычно отвечаю, — и немного того, что хотел бы услышать сам, когда был школьником.

Спойлер: секрет не в том, чтобы как можно раньше выучить сложные алгоритмы. А в простых вещах, которые почти все пропускают.

Зачем вообще олимпиады

Главная олимпиада страны — Всероссийская олимпиада школьников, или просто Всерос. В ней участвуют сотни тысяч школьников, и почти в любой школе детей на неё отправляют. И это правильно.

Случайно стать призёром Всероса невозможно. Зато диплом заключительного этапа даёт поступление в вуз без экзаменов, а ещё денежные премии и повышенные стипендии в университете.

Но Всерос — не единственный путь. Олимпиады первого уровня из перечня тоже дают поступление без экзаменов или 100 баллов ЕГЭ по профильному предмету. У меня, например, есть призёрство Турнира Ломоносова по лингвистике. И я правда не ожидал, что во многих вузах оно котируется как 100 баллов за ЕГЭ по русскому.

Как устроен Всерос по информатике

  1. Школьный этап — в середине или во второй половине октября, от часа до двух, пять задач. Участвовать может любой.
  2. Муниципальный — 3–4 часа. Сюрприз: он скорее математический, чем программистский. Многие сильные математики проходят его, почти не зная алгоритмов.
  3. Региональный — здесь уже нужно настоящее программирование. Максимум 800 баллов, и для призёрства обычно хватает чуть больше половины.
  4. Заключительный — вершина.

Я знаю ученика, который почти случайно прошёл муниципальный этап и на регионе ничего не смог показать. А в прошлом сезоне стал призёром заключительного этапа. Поэтому смело пробуйте и не опускайте рук после первого провала!

Что на самом деле даёт рост

База, конечно, нужна: Python или C++ и основные алгоритмы. Но многие пытаются лететь вперёд и бесконечно проходить всё более сложные алгоритмы. Это имеет намного меньше смысла, чем кажется. По моему опыту, олимпиадника делают три вещи.

1. Насмотренность

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

А если каждая задача для тебя новая, она съедает и силы, и эмоции. Ты потеешь в разы больше того, кто уже решал нечто подобное.

2. «Неприятная» математика

Именно неприятная, а не сложная, — это разные вещи. Математики в олимпиадном программировании немного, и она простая. Но её трудно заметить и ещё труднее соединить с идеей и кодом.

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

С чего начать путь в олимпиадном программировании, изображение №2

3. Быстрая реализация

Придумал идею — умей закодить её за 5–15 минут. У начинающих часто получается долгая пауза: идея есть, а с чего начать код — непонятно.

Этот навык формируется долго, и его легко потерять. Ребята, которые слишком рано уходят в сложные темы, потом часами решают задачи, на которые должны тратить 10–15 минут. А на олимпиаде этих часов нет.

Полюбите школьный этап

Если бы меня попросили назвать самый недооценённый инструмент подготовки, я бы сказал: школьный этап Всероса. И сейчас я рекомендую решать его даже сильнее, чем муниципальный.

Когда я говорю сильным ученикам, что нужно прорешать все школьные этапы, какие есть, это вызывает бурю эмоций: «Это слишком легко, нам это не надо». За последние месяцы я всё же уговорил пятерых-шестерых. Вот что я потом услышал:

  • «Ой, оказывается, не так легко».
  • «У меня проблемы в простой математике» — у одного нашлось примерно 30% ошибок именно там, при том что сложное он щёлкает без проблем.
  • «Я всё время падаю на крайних случаях».

На сложных олимпиадах такие пробелы не видны: там простой математики в чистом виде нет. Школьный этап их вскрывает, и потом с ними можно работать. Причём ребята справлялись с этим сами, без педагога.

Эксперимент, который меня убедил

Несколько лет назад у меня была группа из восьми ребят — все призёры заключительного этапа Всероса. Я взял последние, пятые задачи школьного этапа, и все сказали: «Да легко». Тогда я чуть-чуть их усложнил.

В итоге только двое из восьми решили около половины задач без подсказок. Остальные — максимум одну-две. А потом все восемь спокойно решили исходные задачи — и сразу справились с усложнёнными.

О чём это говорит? Когда в задаче встречаются два непростых факта одновременно, она усложняется кратно. А если один из них ты уже видел, второй почти не пугает. Это и есть насмотренность в действии.

Как решать школьные этапы

  • Не только московские. У «Сириуса» и других регионов очень классные задачи — иногда они готовят чуть ли не к заключительному этапу.
  • По уровню. Начинающим — первая, вторая, может быть, третья задача. Кто посильнее — третья и четвёртая. Пятая — для тех, кто уже готовится к региону.
  • В системе с частичными баллами. Не везде их перенесли, а без них вы не поймёте свой реальный результат. Поэтому ищите тестирующие системы, где можно потренироваться в наборе частичных (дробных) баллов. Например, мы сразу учли этот момент на нашей платформе, !
  • И после олимпиады тоже. Наша сборная в прошлом году тренировалась на школьных этапах практически круглый год. Потому что написать тур и забыть — стратегия, которая не поможет вам с подготовкой. Важно возвращаться, анализировать, прорешивать и становиться лучше.

За какой класс писать

В заданиях за 5–6 класс программирования по сути нет, там скорее математика. Поэтому если ребёнок занимается программированием, пусть пишет хотя бы за 7–8 класс. Там три задачи по программированию обычно те же, что у 9–11 класса.

У нас в сборной все, кто дошёл до курса «Алгоритмы», пишут за 9–11 класс, хотя учатся в 4–6-м. И это не фантастика: в прошлом сезоне сразу несколько наших четвероклассников стали призёрами региона за 9–11 класс. У них за плечами были только , и хорошая математика.

И да, язык программирования не важен. Почти все пишут на Python или C++. Но для заключительного этапа рано или поздно понадобится C++. Хорошая новость: с уверенным Python комфортный переезд на C++ занимает 1–3 недели.
С одним из моих учеников мы справились и вовсе за 4 занятия!

Как выбрать свои олимпиады

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

И они должны быть похожи между собой по темам и уровню. Готовиться одновременно к криптографии и к программированию — плохая идея.

С чего начать путь в олимпиадном программировании, изображение №3

Что я рекомендую начинающим

  • Всерос. Школьный и муниципальный этапы — для всех. Регион — уже высокий уровень, заключительный — для продвинутых.
  • МОШ. Одна из моих любимых личных олимпиад. Там простые теоретические темы применяются так, что хочется воскликнуть: «Вау, а так можно было?» Пару приёмов я сам узнал, уже когда тренировал ребят к МОШ. Важный момент: даже в 9–10 классе начинайте с задач за 6–7 класс и с отбора к финалу.
  • Турнир Архимеда. Командная олимпиада, и, пожалуй, моя самая любимая. В ней 2–4 задачи для начинающих (их ещё надо найти) и 2–4 по-настоящему сложные. Одну такую задачу я давал победителям Всероса, и за 45 минут они её не решили. Я сам залип на ней почти на час и решил только вернувшись после перерыва.
  • МКОШП, любительская лига. Её долго не было, и я очень рад, что она вернулась: начинающим командам нужно где-то тренироваться.
  • Питерская олимпиада ЮМШ — удивительно добротные задачи.
  • Отбор в ЛКШ — самый важный лагерь по программированию и своего рода тоже олимпиада.

Если на МОШ или Архимеде что-то не получилось, не делайте выводов о себе. Иногда там дают слишком сложные идеи даже для шестого класса. А разные олимпиады просто по-разному подходят разным типам мышления.

Как работать с задачами прошлых лет

Берите последние 8–10 лет. Задачи постарше бывают заметно проще. А иногда, наоборот, сложнее — просто потому, что тогда в языках не было инструментов, которые сейчас считаются базовыми.

Не делайте выводов по одному году: иногда просто попадаются «антитемы», и это нормально. И не пытайтесь разобрать сразу все задачи — начните с двух самых простых.

Здесь у меня личный опыт. Школьником я каждый раз пытался разобрать всё и сразу. Это съедало столько сил, что за все школьные годы я сел за разборы раз 30–40, не больше. Если бы я смотрел только то, что мне действительно нужно, делал бы это в десятки раз чаще. И был бы заметно сильнее.

И ещё: ноль на первой олимпиаде ничего не говорит о способностях. Чаще всего у ребёнка просто нет нужных знаний. Я видел, как ребёнок несколько раз подряд писал тренировочную олимпиаду на ноль, а после того как мы закрыли пробелы, стал победителем.

Время на задачу и частичные баллы

На большинстве олимпиад, включая Всерос, решение оценивается не по принципу «0 или 100». За неполное решение дают частичные баллы. Математика простая: если стабильно брать 60–70 баллов с каждой задачи, результат будет очень приличным.

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

Ориентир на школьный этап: начинающему стоит постараться набрать хотя бы 100–200 баллов из 500. А если цель — призёрство в регионе и выход на заключительный этап, на школьном нужно брать почти 500.

Сколько сидеть над одной задачей

Так выглядит нормальный тайминг опытного участника на школьном этапе:

С чего начать путь в олимпиадном программировании, изображение №4

Если опыта пока мало, на любую задачу дайте себе 5–20 минут. Не получается — ничего страшного, берите следующую.

На задачу A регионального этапа уходит 10–15 минут, на B — до 30–40. Если на тренировке ребёнок сидит над задачей региона дольше 40 минут, пользы уже почти нет, а дальше это становится вредно. Нельзя привыкать решать долго.

Не в одиночку

Когда я рос по-настоящему быстро, рядом всегда был друг, с которым мы двигались вместе. Одному трудно: перестаёшь понимать, что происходит, становится скучно. А когда рядом двое-трое друзей идут тем же путём, всё меняется. Кто-то из них уже наступил на свои грабли и нашёл рабочую формулу. А если ты сам лидер, то видишь, какие ошибки делают ребята чуть слабее, и это тоже учит.

С чего начать путь в олимпиадном программировании, изображение №5

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

Лагеря и интенсивы

Именно лагеря и интенсивы когда-то сделали большинство олимпиадников, которых я знаю. Хороших кружков по программированию раньше были единицы, и всё остальное время ты искал материалы и людей сам. А в лагере за короткий срок получаешь огромный объём знаний. После лагеря почти у всех ребят случается рывок, а дальше остаётся только закреплять.

Командные олимпиады

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

  1. Нет стратегии. Задачи нужно распределить в первые минуты. И помнить, что ноутбук на всю команду один.
  2. Не умеют просить помощи. У меня так бывало постоянно: придумал 85% решения, а оставшиеся 15% никак. Рассказываю другу — щелчок, и задача решена, потому что ему это было очевидно.
  3. Непривычный формат. Помочь тому, кто сидит за клавиатурой, трудно, и идею приходится доводить на ходу.
  4. Эмоции. Паника, злость на себя, ступор от страха сделать неверный ход. Иногда правильнее выйти на пять минут, умыться и вернуться — или бросить задачу, а не терять на ней 40 минут подряд.

Моя школьная команда как-то дважды за олимпиаду теряла по полтора-два часа. И всё равно мы много раз обгоняли ребят, которые были гораздо сильнее нас, потому что научились играть вместе. Командные олимпиады отлично учат управлять эмоциями и временем, и этот навык потом пригодится везде.

Что делать после олимпиады

Самая частая история: тур закончился, ребёнок вышел, сказал «ну ладно, потом разберу». И это «потом» не наступает никогда. А ведь разбор — это то, ради чего олимпиаду стоит писать.

Вот как это должно выглядеть:

  1. В тот же день или на следующий — записать свои идеи. В прошлом году многие мои ученики выходили с тура, сразу записывали в блокнот, как решали каждую задачу, и присылали мне. Это лучшая привычка, которую можно себе привить.
  2. В течение 2–3 дней — разобрать задачи, которые были близки к решению. С педагогом или по официальному разбору, когда он выйдет.
  3. Сравнить своё решение с авторским — даже если задача решена. Часто находится идея проще, компактнее, изящнее.
  4. Понять, чего не хватило, подтянуть это и прорешать тур ещё раз. Муторно, не хочется — но это очень сильно двигает вперёд.

Про официальные разборы честно скажу: идеальных ждать не стоит. Хороший разбор — огромный труд. Я на разбор одного тура трачу два-три полных дня, хотя сами задачи мы с учеником программируем минут за сорок. Объяснить решение так, чтобы ребёнок понял, как к нему прийти, гораздо дольше.

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

Ошибки, которые я вижу каждый год

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

С чего начать путь в олимпиадном программировании, изображение №6

«Решаем побольше сложных задач»

Распространённое мнение: чем больше сложных задач, тем быстрее рост. Я с ним не согласен. Обычно берут уровень, который почти неподъёмен или решается только с горой подсказок. И постепенно ребёнок начинает решать одну задачу не 40 минут, а час, а потом — несколько дней.

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

Поэтому сложных задач мы даём немного: одну-три в неделю, а иногда ни одной несколько месяцев подряд. Лучше прорешать много простых и средних, поднять уровень и вернуться к сложным через несколько месяцев. Тогда они решаются уже не за час, а за 40 минут, а иногда и за 15.

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

«Решаем часами»

Каждый олимпиадник должен знать, сколько у него уходит на задачу. Замеряйте время. Лучше 40–60 минут, потом отдых и свежий взгляд, чем три часа без контроля.

«Школьный этап — это несерьёзно»

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

«Идём вперёд как можно быстрее»

Частая картина. Ребёнок кое-как справился с уровнем, все решили, что было легко, и сделали шаг вперёд. Потом ещё один. И в итоге он на уровне, где ничего не понимает, а откатиться назад стыдно.

Откатываться не стыдно. А если вы не уверены в текущем уровне на 100%, лучше довести его до конца. Например, если ребёнок сейчас на нашем переходном курсе RepeatAndGo, я всегда советую закрыть его полностью и только потом идти на Python Pro. Ребята с одним только Python Start и крепкой базой брали призёров региона.

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

Я и сам когда-то бросал программирование почти на два года: сначала было легко, а потом вдруг стало слишком сложно. Поэтому я тотально против подхода «бежим и терпим», рассчитанного на то, что ребёнок уже закалённый олимпиадник, готовый к боли.

Отдельно для родителей

С чего начать путь в олимпиадном программировании, изображение №7

Не ждите, пока ребёнок заинтересуется сам

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

Со мной было так же. Меня сначала никто не спрашивал — просто заставляли. А потом я случайно попал в нужный кружок, к нужным людям и друзьям, и меня уже было не вытащить.

Речь, конечно, не о давлении. Правильное «заставление» — это разговоры, направление и поиск среды, в которой ребёнку самому захочется остаться.

Не ждите высоких баллов

Парадокс, но чем меньше вы ждёте, тем лучше ребёнок напишет. Когда от тебя постоянно чего-то ждут, очень трудно сосредоточиться на стратегии.

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

Но и фальшивое «ноль — всё равно отлично» не помогает. Лучше спокойно, без эмоций разобраться вместе:

  • Что не получилось, как ты думаешь?
  • Где ты был близок к решению?
  • Чего не хватило — знаний, времени, стратегии?
  • Что будем делать дальше?

Прогресс не бывает ровным

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

Важно замечать достижения относительно себя, а не других. И важно, чтобы ребёнок регулярно чувствовал: «У меня получается». Если надрывы становятся постоянными, даже сильный ребёнок рано или поздно сломается.

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

С чего начать уже завтра

Если свести всё сказанное к короткому плану, он будет таким:

  • Выбрать 3–4 похожие олимпиады и вписать их даты в календарь. Для старта — Всерос, МОШ, Турнир Архимеда.
  • Зарегистрироваться на школьный этап Всероса. Если ребёнок занимается программированием — за 7–8 класс или старше.
  • Прорешать несколько школьных этапов прошлых лет с таймером и в системе с частичными баллами.
  • На каждой задаче следить за временем и всегда отправлять хотя бы частичное решение.
  • После каждого тура записать идеи и в течение 2–3 дней разобрать нерешённое.
  • Найти наставника и друзей, которые идут тем же путём: в кружке, на интенсиве, в лагере.

Олимпиадное программирование — это не спринт, а длинная дистанция. Идеи, которые ребёнок сегодня даже не до конца понял, часто прорастают через год. Я не раз видел, как ребёнок, набравший 15 баллов на школьном этапе, на следующий год решал в пять-шесть раз больше, чем от него ждали.

Главное — начать, не спешить и не идти в одиночку!

Содержание
Развернуть
Свернуть
Занятие с репетитором — Юайти
Занятие с репетитором
по математике
и программированию
Записаться

Понравилась статья?

Подпишись на Телеграм школы, чтобы не пропустить новые статьи и новости
Telegram канал

Поможем подобрать обучение

Оставьте телефон. Мы перезвоним, поможем выбрать подходящие занятия и ответим на вопросы

Поможем подобрать обучение

Заявка принята.

Мы свяжемся с вами