Наши герои: Иван Белоногов, Илья Збань и Владимир Смыкалов – чемпионы ACM ICPC
/ Фото icpcnews icpcnews / CC
Результаты
«Именно программисты дадут ответы на многие вызовы будущего»
– Президент ACM Вики Линн Хэнсон
Итак, в этом году во всех этапах чемпионата участвовали 46 381 человек из 2 948 университетов. К соревнованиям присоединились 103 страны с шести континентов. На решение финальной серии задач у участников последнего этапа было не более 5 часов – в итоге команда Университета ИТМО одержала абсолютную победу, решив наибольшее количество проблем (10 из 12 возможных) с наименьшим числом попыток и потратив на это меньше всего времени.
Помимо чемпионского титула в олимпиаде разыгрываются золотые, серебряные и бронзовые медали (ими награждаются первые 12 команд). «Золото» помимо Университета ИТМО в этом году завоевали команды Варшавского университета, Сеульского университета и СПбГУ. Помимо питерских команд в числе медалистов из России оказались команды МФТИ (серебро) и УрФУ (бронза).
Всего от России в чемпионате приняли участие 13 команд: 3 из Санкт-Петербурга, еще 3 – из Москвы, по одной команде из Новосибирска, Саратова, Томска, Екатеринбурга, Самары, Перми и Петрозаводска.
Помимо команды Варшавского университета в числе наших наиболее грозных зарубежных соперников назывались команды из Китая, Швеции (KTH) и США (MIT). В итоге студенты китайских вузов (университет Синьхуа, Пекинский и Фуданский университеты) заняли с 6 по 8-е места соответственно (серебро). Королевский Технологический Институт (Швеция) завоевал бронзу (11-е место), а MIT оказался только на двадцатой позиции (все результаты финалистов чемпионата можно посмотреть здесь).
«Эти ребята решают задачи за три минуты. Это невероятно, и мне это нравится, потому что так и бывает, когда ребят вовлекают в решение задач, когда у них есть и ресурсы, и запал, и менторы, и они работают над этим в течение всего года», – так отозвался о финалистах исполнительный директор чемпионата Билл Паучер.
/ Фото icpcnews icpcnews / CC
Проблемы
Кстати, интрига в чемпионате сохранялась до самого финала – как признаются сами победители и их тренер, Андрей Станкевич, соревноваться команде Университета ИТМО пришлось с очень сильными соперниками, и до последнего не было понятно, успеет ли кто-то из них решить 11-ю проблему. Как показали итоги соревнования, это не удалось ни одной команде.
Студенты из Школы горного дела и технологий университета Южной Дакоты (именно в Южной Дакоте проходил в этом году финал чемпионата) в своем интервью местному телеканалу отметили, что задачи (они же «проблемы») были на порядок сложнее чем те, по которым готовились они сами. Эта команда решила всего 2 проблемы.
Студенты также посетовали на то, что методы обучения спортивному программированию в их университете разительно отличаются от тех, которые используют, в частности, российские команды. За рубежом российскую школу программирования оценивают действительно высоко – так, в прошлом году студенты Университета ИТМО были признаны лучшими программистами в мире по версии платформы Hacker Rank.
Возвращаясь к проблемам: наиболее популярными языками при их решении стали C++ и Java. Новшеством этого года стала возможность решать задачи на Python – как отмечается, это серьезный шаг для чемпионата (с точки зрения организационных процедур), но не для самих участников – решений на этом языке оказалось не так уж много.
Кстати, все проблемы, над которыми бились финалисты чемпионата, можно попытаться решить самостоятельно – текст задач есть в открытом доступе. Кроме того, судьи финала чемпионата подготовили примерные варианты решений. Между прочим, единственной нерешенной во время финала чемпионата проблемой стала проблема под названием Scenery (Problem H).
Комментарии (5)
ru_vlad
31.05.2017 22:48Станкевич есть Станкевич! :) при наличии времени и желании из любой команды чемпионов сделает :)
monah_tuk
01.06.2017 06:14А нигде нет опубликованных решений победителей и других участников? Интересно было бы посмотреть на используемые подходы, код и так далее? Другими словами: оценить, насколько спортивный код отличается от того, который приходится писать в реальной жизни.
Envek
01.06.2017 10:12+1Разительно отличается. Спортивный код ужасен, потому что он одноразовый (потом разбираться в нём не нужно) и пишется на скорость. Поэтому чем короче имена переменных — тем лучше (
i
,j,
k
,x
,y
,z
, но чаще всего они называются так же, как в примерах к условию задачи), из новых возможностей языка будут использованы только те, которые позволят написать меньше кода (да даже векторы и итераторы нам зачем, если нам первым аргументом число элементов дадут и можно просто массив выделить?) и т.д. и т.п. Комментарии? Только для закомментированных участков кода!
Совсем другие приоритеты у спортивного кода.
lega
01.06.2017 11:24+1Спортивное программирование и «продуктовое» — разные направления, и если человек победил в спортивном — это не значит что он хорошо программирует/проектирует «реальные программы» (и наоборот). Но иметь такой навык очень полезно в «реальном программировании», т.к. это помогает решать сложные задачи и делать оптимальные/быстрые решения.
Т.е. современному программисту не плохо бы развиваться в обоих направлениях, например раз в неделю решать/разбирать по одной не сложной задачке, кроме того — это интересно.
geakstr
Круто! Поздравляю все команды из России. Рад, что из года в год не сдаем позиции.