Вчера в Университете ИТМО встречали команду, которая принесла нам седьмую победу в международном чемпионате ACM ICPC.

Наши герои: Иван Белоногов, Илья Збань и Владимир Смыкалов – чемпионы 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)


  1. geakstr
    31.05.2017 16:49
    +4

    Круто! Поздравляю все команды из России. Рад, что из года в год не сдаем позиции.


  1. ru_vlad
    31.05.2017 22:48

    Станкевич есть Станкевич! :) при наличии времени и желании из любой команды чемпионов сделает :)


  1. monah_tuk
    01.06.2017 06:14

    А нигде нет опубликованных решений победителей и других участников? Интересно было бы посмотреть на используемые подходы, код и так далее? Другими словами: оценить, насколько спортивный код отличается от того, который приходится писать в реальной жизни.


    1. Envek
      01.06.2017 10:12
      +1

      Разительно отличается. Спортивный код ужасен, потому что он одноразовый (потом разбираться в нём не нужно) и пишется на скорость. Поэтому чем короче имена переменных — тем лучше (i, j, k, x, y, z, но чаще всего они называются так же, как в примерах к условию задачи), из новых возможностей языка будут использованы только те, которые позволят написать меньше кода (да даже векторы и итераторы нам зачем, если нам первым аргументом число элементов дадут и можно просто массив выделить?) и т.д. и т.п. Комментарии? Только для закомментированных участков кода!


      Совсем другие приоритеты у спортивного кода.


    1. lega
      01.06.2017 11:24
      +1

      Спортивное программирование и «продуктовое» — разные направления, и если человек победил в спортивном — это не значит что он хорошо программирует/проектирует «реальные программы» (и наоборот). Но иметь такой навык очень полезно в «реальном программировании», т.к. это помогает решать сложные задачи и делать оптимальные/быстрые решения.
      Т.е. современному программисту не плохо бы развиваться в обоих направлениях, например раз в неделю решать/разбирать по одной не сложной задачке, кроме того — это интересно.