© ComNews
12.08.2019

Аспирант Университета ИТМО Геннадий Короткевич вновь не уступил никому титул чемпиона международного турнира по программированию Google Code Jam, проходившего в Сан-Франциско 9 августа. Это его шестая победа подряд на одном из крупнейших компьютерных соревнований. Таких успехов не добивался ни один программист планеты: другим участникам удавалось победить максимум дважды.

Google Code Jam проводится компанией Google с 2003 года и считается одним из самых престижных и массовых чемпионатов мира по программированию: ежегодно он собирает свыше 50 тысяч участников – это больше, чем летние Олимпийские игры. В финал выходят всего 25. В этот раз в списке лучших оказались три воспитанника Университета ИТМО.

Победу в турнире в шестой раз подряд, снова побив собственный рекорд, одержал Геннадий Короткевич. 24-летний аспирант ИТМО – двукратный победитель международного чемпионата мира по программированию ICPC (2013 и 2015 годов), пятикратный чемпион "Яндекс.Алгоритма", победитель и призер других международных соревнований "Большого программистского шлема".

По итогам Google Code Jam Короткевич набрал 143 балла, опередив Макото Соэджима (rng..58) из Японии и Эндрю Хе (ecnerwale) из США – оба набрали по 121 баллу, но японец показал лучшее время. Выпускник Университета ИТМО, чемпион ICPC 2015 года Борис Минаев набрал 56 баллов, еще один выпускник альма-матер чемпионов Евгений Капун – 54 балла (12-е и 13-е места соответственно).

В Google Code Jam может принять участие любой желающий. Отбор в финал проводится онлайн в несколько этапов. Сначала – квалификационный раунд, который длится около суток; для его успешного прохождения необходимо набрать определенное число баллов. Далее проводится серия из трех раундов, каждый из которых проходит в разные дни и длится 2,5 часа. 25 лучших программистов мира по итогам отбора приглашаются на очный тур, который каждый год проходит в разных городах и странах: в прошлом году это был Торонто (Канада), на этот раз – Сан-Франциско (США).

Участникам дается набор алгоритмических задач, которые нужно решить за фиксированное время. Решение – программу – можно написать на одном из языков: Bash, C, C++, C# (mono), Go, Haskell (ghc), Java 8, Javascript (nodejs), Python 2, Python 3, PHP или Ruby.

В этом году финалисты должны были решить шесть задач, каждая из которых имеет два условия решения. Первое – более легкое для участника, так как для решения задачи подходит менее эффективный алгоритм, а перед программистом стоит меньше ограничений. За это решение дается 5 баллов. Как только участник отправил решение, ему сразу же приходит ответ, верное ли оно. Если ответ не приходит, программист может перепроверить решение и отправить ответ снова. Вторая часть каждой задачи требует более сложных алгоритмов. Кроме того, правильность их решения участник узнает только на церемонии награждения победителей. За решение более сложной части дается 22-30 баллов. Также в соревнованиях учитывается общее время решения задач.

Геннадий Короткевич полностью решил четыре задачи из шести, а также первую, более легкую часть еще одной задачи. За победу он получил денежный приз – 15 000 долларов.