{"id":14262,"url":"\/distributions\/14262\/click?bit=1&hash=8ff33b918bfe3f5206b0198c93dd25bdafcdc76b2eaa61d9664863bd76247e56","title":"\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u0435 \u041c\u043e\u0441\u043a\u0432\u0435 \u0438\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u044e \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0434\u043e 1,5 \u043c\u043b\u043d \u0440\u0443\u0431\u043b\u0435\u0439","buttonText":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435","imageUuid":"726c984a-5b07-5c75-81f7-6664571134e6"}

Как выиграть золотую медаль на международной олимпиаде по информатике. Кейс выпускника Тинькофф

В сентябре один из учеников образовательной программы для школьников Тинькофф Поколения выиграл золотую медаль на международной олимпиаде по информатике IOI 2020. В соревновании участвовало почти 350 ребят из 87 стран. Семен Савкин из Москвы занял 25 место в мировом рейтинге.

Командное выступление участников из России принесло стране 2 место в мировом зачете. России опередила сборные Японии, Канады и Кореи. Семен рассказал, как ему это удалось.

Вместе с бабушкой создавал компьютерные игры

В олимпиаде участвовали 343 человека из 87 стран, золотые медали выдали 29 участникам, я был среди них.

Моя бабушка — учитель информатики. Поэтому я начал заниматься программированием еще в начальной школе. В 4 классе бабушка научила меня создавать небольшие компьютерные игры на Delphi, показала архив acmp.ru.

В 7 классе я впервые участвовал во Всероссийской олимпиаде по информатике, но не очень успешно. В 8 классе я стал призером, в 9 классе занял 13 место, а в 10 классе — 7 место. Кроме того, я активно учился в летних школах, участвовал в воркшопах по программированию, а в 10-м классе пошёл в Тинькофф Поколение, где мы тоже много решали олимпиадные задачи. Международная олимпиада по информатике — это пик спортивного программирования для школьников, и в этом году мне удалось пройти отбор и попасть на IOI в составе сборной России.

Из-за коронавируса не поехал в Сингапур

Каждый раз олимпиада проходит в разных странах. В этом году она должна была пройти в Сингапуре, но коронавирус нарушил планы: олимпиада проводилась в онлайн-формате — открытие, закрытие и награждение транслировалось в YouTube. Сборная России писала туры в кампусе МФТИ.

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

Команда России на IOI 2020, Семен второй слева.

Нужно было догадаться до нестандартного решения

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

Я пишу на С++. В первом туре я решил одну задачу за час на 100 баллов, остальные две были сложнее. Во втором туре были две простые задачи и одна сложная. Я решил две задачи за 2,5 часа, но последнюю мне так и не удалось решить.

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

В итоге, я стал золотым медалистом олимпиады.

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

Только на знаниях школьной программы выиграть практически невозможно

Я учился в школе № 57 в математическом классе, ездил на сборы по информатике, участвовал в Летней компьютерной школе, Moscow Workshops Juniors, много решал контесты на Codeforces, Atcoder, Topcoder, Codechef.

В 10 и 11 классах я учился в Тинькофф Поколении в кружке «Алгоритмы и структуры данных». Мне повезло: от дома до офиса на Водном стадионе недалеко. Мы занимались раз в неделю: по субботам были большие теоретические лекции, а на неделю нам давали решать тематические и олимпиадные контесты. Каждый тематический контест состоял из нескольких задач на тему прошедшей лекции.

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

Думаю, мне сильно помогла разносторонняя подготовка.

Пример задачи с первого дня IOI 2020

Есть билеты n цветов, на каждом билете написано некоторое число. Количество билетов каждого из n цветов равно m.

Два игрока играют в игру. Первый игрок в свой ход выбирает n билетов, по одному каждого цвета. После чего второй игрок смотрит на числа, которые написаны на билетах (обозначим их a_1, a_2, ..., a_n), и выбирает некоторое число b. После чего первый игрок получает |a_1 — b| + |a_2 — b| + ... + |a_n — b| очков. Выбранные билеты удаляются.

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

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

0
4 комментария
Пётр Сальников

Ураа!!!!! Тинькофф рулит!!! Как же я люблю Тинькофф!!!

Ответить
Развернуть ветку
Тинькофф
Автор

<3

Ответить
Развернуть ветку
Boris Khesin

А можно мне тоже смайлик?

Ответить
Развернуть ветку
Тинькофф
Автор

Почему бы и да? :)

Ответить
Развернуть ветку
1 комментарий
Раскрывать всегда