IT News: Геннадій Короткевич і його приголомшливі досягнення в спортивному програмуванні

IT News Новини ринку Новини ІТ Наталія Соловйова

| 20.08.2018

У першій половині серпня 2018 року в Торонто пройшли міжнародні змагання з програмування Google Code Jam , Які щорічно протягом останніх 15-ти років організовує та проводить компанія Google. Вп'яте поспіль турнірну таблицю очолив Геннадій Короткевич, який представляє Білорусь, який набрав за підсумками чемпіонату 104 бали. За всю історію турніру таких результатів не зміг домогтися ніхто - іншим програмістам вдавалося завоювати титул переможця максимум два рази поспіль.

Google Code Jam - один з найпопулярніших і наймасовіших чемпіонатів з програмування. Перше таке змагання компанія провела в 2003 р Переможці та учасники, які продемонстрували свої успішні навички з програмування в ході проведення чемпіонату, отримують можливість роботи на корпорацію Google, а також стають бажаними кандидатурами для найуспішніших IT-компаній світу.

У поточному 2018 р число програмістів, які зареєструвалися для участі в цьому заході, перевищило 60 тис. Приз за перше місце Google Code Jam становить $ 15 тис.

Чемпіонат складається з набору алгоритмічних задач, які необхідно вирішити протягом певного часу. Завдання складаються з двох частин. Для вирішення першої частини підходить менш ефективний алгоритм, а перед програмістом дешевше обмежень. Після відправки рішення учаснику відразу приходить відповідь, і якщо рішення виявилося невірним, його можна перевірити ще раз і знову відправити на перевірку ще раз. Рішення другої частини кожного завдання вимагає більш складних алгоритмів, а правильність їх рішення учасник дізнається тільки на церемонії нагородження переможців. У змаганнях враховується не тільки кількість балів, яку учасник набрав за вирішення завдань, але і загальний час, який він витратив.

Всі раунди Google Code Jam, за винятком фінального, проводяться в режимі онлайн. Для вирішення завдань можна вибрати одну з мов програмування - Bash, C, C ++, C # (mono), Go, Haskell (ghc), Java 8, Javascript (nodejs), Python 2, Python 3, PHP або Ruby.

Перший раунд - кваліфікаційний - триває близько 24-ї години. Для його проходження потрібно набрати певну кількість балів, що вдається приблизно половині всіх учасників. Потім проходить серія з раундів 1A, 1B і 1C, кожен з яких триває по 2,5 години. Для участі в третьому раунді відбирається 500 осіб, а по його завершенню залишаються лише 25 фіналістів.

Фінал Google Code Jam беруть щороку різні країни. У цьому році він проходив в Торонто - найбільшому місті Канади і фінансовому центрі провінції Онтаріо. Фіналістам доручили завдання, що складається з п'яти завдань: двох простіших Jurisdiction Restrictions і Two-Tiling і трьох складніших Go, Gophers !, Swordmaster і The Cartesian Job. Вирішити їх потрібно було за чотири години.

Трійка лідерів визначилася буквально на останніх хвилинах. Перше місце зайняв Геннадій Короткевич (Білорусь) з підсумком в 104 бали, друге - Каміл Дебовскі (Польща) з результатом в 96 балів, і третє - Макото Соеджіма (Японія) з 86-ма балами. Цікаво відзначити, що така ж кількість балів - 86 - набрав і Михайло Іпатов (МДУ ім. Ломоносова), але йому довелося поступитися місцем в трійці фіналістів програмісту з Японії, оскільки той вирішив завдання швидше.

Варто зазначити, що в поточному 2018 року в правила проведення Google Code Jam, що залишалися незмінними протягом останніх 10-ти років, були внесені істотні зміни. Наприклад, якщо в минулі роки учасники могли вибирати ОС з двох варіантів - Windows або Linux, то в цей раз єдиним варіантом була ОС Linux. Крім того, якщо раніше учасники самі запускали свої рішення, то тепер код учасників запускається на тестують комп'ютерах членів журі. Як заявив переможець чемпіонату Геннадій Короткевич в бесіді з представниками ЗМІ, оточення виявилося трохи незвичним, тому було важливо не витрачати багато часу на технічні питання і сконцентруватися на головному. Перемогу, в результаті, принесло рішення задачі Two-Tiling. Часу на це потрібно багато - близько 1,5 годин, та й вирішити її змогли лише далеко не всі учасники.

Геннадій Короткевич народився в 1994 р в Гомелі в сім'ї програмістів. Сам займатися програмуванням почав ще в 8 років, а вже в віці 11-ти років вперше взяв участь у Міжнародній олімпіаді з інформатики, де зайняв 2-е місце. У 2012 р став третім в турнірі VK Cup, а в 2015 і 2016 рр. очолив турнірну таблицю.

У 2014 р Г. Короткевич виграв всі п'ять найважливіших особистих змагань в спортивному програмуванні - TopCoder Open, Google Code Jam, Facebook Hacker Cup, Russian Code Cup і «Яндекс.Алгорітм». Йому належить титул чемпіона світу з програмування серед університетських команд ACM ICPC в 2013 р і 2015 р складі команди ИТМО. У 2014 і 2015 рр. переміг в Facebook Hacker Cup, і в тому ж 2015 році став чемпіоном ZeptoCodeRush. Неодноразово перемагав у змаганнях «Яндекс.Алгорітм», і входив до трійки лідерів в турнірі Russian Code Cup.

У 2018 році він закінчив навчання на кафедрі комп'ютерних технологій Факультету інформаційних технологій і програмування в Санкт-Петербурзькому національному дослідницькому університеті інформаційних технологій, механіки і оптики (Університет ИТМО, державний вищий навчальний заклад Санкт-Петербурга, національний дослідницький університет Росії). Сьогодні він - аспірант Університету ИТМО і один з найтитулованіших спортсменів в області програмування в усьому світі.

Журнал: Журнал IT-News , Підписка на журнали