Российские программисты стали чемпионами мира, обойдя Гарвард и MIT. Программисты университета итмо – семикратные чемпионы acm icpc

В Рапид-Сити (США) 24 мая состоялась кульминация Чемпионата мира по программированию ACM ICPC-2017 . Абсолютными чемпионами стала команда Университета ИТМО, решившая 10 задач из 12 быстрее и грамотнее соперников. Таким образом, петербургский вуз установил новый рекорд в истории контеста: сборные Университета ИТМО в седьмой раз стали победителями ACM ICPC, что еще не удавалось ни одному вузу в мире. Чемпионский кубок над головой подняли студенты кафедры компьютерных технологий Владимир Смыкалов, Иван Белоногов и Илья Збань. В этом году в финале самого престижного соревнования среди программистов участвуют 133 команды из всех регионов мира, состязания проходили уже в 41 раз.

Награждение команды Университета ИТМО

Сборная вуза смогла правильно решить 10 задач из 12, потратив на это наименьшее количество времени. Именно время решения задач и меньшее число неудачных попыток их сдачи обеспечило команде седьмой кубок ACM ICPC. Другие «золотые» команды, составившие четверку лидеров контеста, также решили по десять задач. Буквально на пятки чемпионам мира наступала команда Варшавского университета, бывшая фаворитом ACM ICPC-2017. На третьей позиции программисты из Сеульского национального университета. С четвертым результатом финишировала команда СПбГУ - чемпион прошлого года. Сборная Университета ИТМО состоит из студентов факультета информационных технологий и программирования Владимира Смыкалова (первый курс магистратуры кафедры КТ), Ивана Белоногова (четвертый курс бакалавриата кафедры КТ) и Ильи Збаня (четвертый курс бакалавриата кафедры КТ). Главным тренером команды выступил доцент кафедры компьютерных технологий , кандидат технических наук Андрей Станкевич , который подготовил не одно поколение спортсменов-программистов. В 2016 году он получил престижную награду ACM ICPC Senior Coach Award за то, что в течение 15 лет его подопечные проходили в финал конкурса.

«Соревнование прошло удивительно гладко, - делится впечатлениями Иван Белоногов . - В некоторых задачах мы интуитивно положились на факты, которые не могли доказать полностью, и чутье нас не подвело. Нам удалось сдать 10 задач фактически за четыре часа, и это дало хороший запас уверенности. Но только в самом конце, когда мы сдали десятую задачу, я подумал: "Окей, видимо, получится взять золото!"».

Призерами стали также другие российские команды: команда МФТИ уедет с «серебром» ACM ICPC, а Уральский федеральный университет с «бронзой» контеста . Всего в этом году Россию представляли 13 команд - на одну больше, чем в прошлом году, в том числе по три из Москвы и Санкт-Петербурга, а также из других городов: Саратова, Перми, Петрозаводска, Новосибирска, Самары, Томска и Екатеринбурга. Команды из РФ участвуют в чемпионате с 1993 года, а с 2000 года побеждали в соревновании уже 12 раз, включая этот год.

С полной таблицей результатов можно ознакомиться по ссылке .

«Все команды, вошедшие в ТОП-12, не раз назывались в списках фаворитов - больших сюрпризов не было. По сравнению с прошлым годом, мощный рывок показали азиатские вузы: в прошлом году им досталось всего две медали, а сейчас - целых семь. Однако в каждом регионе много сильных команд, и конкуренция все обостряется» , - комментирует наставник команды Университета ИТМО Андрей Станкевич .

Последний час соревнований, признался тренер, был для него не менее волнующим, чем для его подопечных.

«После того как турнирная таблица замораживается, никаких способов показать тренеру, сдана ли задача, у ребят нет, но в этот раз, видя изображение с экрана их компьютера в ходе трансляции, я заметил, что после отправки последней задачи, G, они быстро переключились на страницу с результатами, и подумал: значит, все хорошо, сдали. Это была не та задача, от которой стоило бы отказаться при неправильном ответе» , - делится тренер.

Традиционно, как и в этом году, контест проходил в течение пяти часов. За это время участники должны решить практико-ориентированные задачи. Особенность соревнований в том, что команды из трех человек сидят перед одним компьютером. Поэтому помимо логики и умения работать под давлением, они должны проявить навыки командной игры и правильного распределения ролей. Для того, чтобы решить некоторые задачи, достаточно лишь аккуратности и внимательности, отмечают организаторы чемпионата. Для других же заданий требуется углубленное знание различных алгоритмов. Результатом работы команды чаще всего является некое программное обеспечение, которое соответствует поставленным условиям. Задачи проверяются автоматически по тестам, которые заранее составляются жюри, проверка решений идет в реальном времени. Учитывается полнота и скорость выполнения задания, а также количество попыток, которое сделала команда при решении той или иной задачи. Не всегда команды успевают справиться со всеми. Такие жесткие условия соответствуют реальной жизни: ведь клиент может просто отказаться от услуг программиста, если второй впустую тратит время и ресурсы первого.

Чтобы попасть в финал ACM ICPC, нужно было сначала пройти местный отбор в собственном университете. Обычно в этих мероприятиях участвуют более 300 тысяч человек. Затем проходят , в которых определяются лидеры, достойные финала. Чемпионы ICPC получает кубок Чемпионата мира и солидную денежную премию, которая в этом году равняется 15 000 долларов США. Остальные команды-призеры также не уезжают без материального вознаграждения.

Чемпионат по спортивному программированию International Collegiate Programming Contest проводится ежегодно c 1977 года под эгидой Ассоциации вычислительной техники (ACM, штаб-квартира в Нью-Йорке). В этом году ACM ICPC вновь поставил новый рекорд по количеству участников. Всего в региональных отборочных этапах участвовал 46 381 студент из почти трех тысяч университетов. В прошлом году в ходе чемпионата состязались чуть более 40 000 программистов. По статистике организаторов мероприятия, количество участников увеличилось на 2000% с 1997 года, года, когда чемпионат стала поддерживать компания IBM.

Всего в олимпиаде участвовало 2736 команд из вузов 102 стран. В финал прошли 128 команд, из них 12 — российские. Студенты СПбГУ одержали победу в чемпионате и смогли обойти команды Шанхайского университета, Гарварда и Массачусетского технологического института. Чемпион 2015 года команда ИТМО заняла седьмое место.

Кроме этого, в первую десятку попали представители еще трех российских вузов: МФТИ, УрФУ и ННГУ.

Чемпионат по программированию ACM ICPC проводится с 1977 года, Россия в нем участвует с 1993 года. За это время Россия десять раз побеждала в соревновании; шесть побед, включая прошлый год, достались студентам Университета ИТМО. Команда СПбГУ побеждала также в 2014 году.

Призеры олимпиады получили приглашения на стажировку в исследовательских офисах компании IBM и в других международных IT-компаниях.

В состав команды СПбГУ вошли Игорь Пышкин, Станислав Ершов и Алексей Гордеев. Тренером команды выступает сотрудник соцсети «ВКонтакте», которая является одним из спонсоров команды, Андрей Лопатин. Корреспондент «Газеты.Ru» пообщался со Станиславом, и он рассказал о своих впечатлениях от чемпионата.

— Как настроение и впечатления от чемпионата?

— Лучше не бывает!

— Как проходил чемпионат?

— Финал чемпионата длится пять часов. Участники получают несколько задач. Например, в этом году было 13 задач. Все они математические: нужно сначала догадаться до идеи решения, придумать алгоритм, а уже затем писать код.

Выигрывает та команда, которая решила больше всех задач, а среди таких — команда с наименьшим штрафным временем. Кроме финала есть еще отборочные соревнования. Сначала примерно в октябре проходят четвертьфиналы, а в декабре — полуфиналы.

— Почему решили принять участие в ACM ICPC?

— Мы все уже много лет занимаемся программированием, поэтому не могли не попробовать свои силы в главном чемпионате в этой области. У нас у всех троих специальность «математика», а программирование мы самостоятельно изучаем, на тренировках например.

— Как проходили подготовки к соревнованию?

— Мы готовились весь год. Писали по три тренировки в неделю. Каждая тренировка по пять часов, как на настоящем чемпионате, чтобы подготовиться к тому, что будет на финале.

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

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

— Какие команды вызывали наибольшие опасения?

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

Наиболее сильными мы считали команду из Шанхая и из Варшавы. Шанхайская команда заняла второе место, показав результат совсем немного хуже нашего, всего на семь штрафных минут. У Варшавы плохо решались задачи на старте, поэтому они в итоге выступили не так хорошо, как мы ожидали. Также особую «опасность» представляли ИТМО и Урал.

— Как ты оцениваешь уровень российских программистов на мировой арене?

— Уже более пяти лет чемпионами мира становятся то университет ИТМО, то СПбГУ. В этом году в первой десятке пять российских команд. Так что уровень, на мой взгляд, очень хороший.

— Государство как-то поддерживает вашу команду или вуз?

— Обычно либо разные частные компании нас спонсируют, либо университет.

— Поступали уже предложения от работодателей, зарубежных или отечественных?

— Лично мне еще не поступали. Сокомандники говорят, что пока в основном есть предложения только от WorldQuant. Это зарубежная фирма, но работу они предлагают, скорее всего, в Петербурге.

— Какие планы на будущее?

— Я сейчас только заканчиваю второй курс матмеха СПбГУ. В университете я изучаю математику, а не программирование.

Вполне возможно, что я уеду за рубеж, если там будет возможность работать в интересном проекте.

Но пока я об этом не думаю, потому что для начала нужно окончить университет. Остальные в команде вроде уже решили, что математикой профессионально заниматься не будут, а я еще не определился.

10:04

01:21

05.04 22:46

05.04 21:43

05.04 20:58

05.04 19:21

05.04 19:05

05.04 18:51

05.04 18:38

05.04 18:22

05.04 17:41

05.04 17:40

05.04 17:33

05.04 17:33

05.04 17:29

05.04 17:19

05.04 17:03

05.04 16:54

05.04 16:31

05.04 16:17

05.04 16:11

05.04 16:09

05.04 15:47

05.04 15:44

05.04 15:36

05.04 15:31

05.04 15:30

05.04 15:25

05.04 15:11

05.04 15:03

05.04 14:35

05.04 14:34

05.04 14:31

05.04 14:00

05.04 13:47

05.04 13:35

05.04 13:26

05.04 13:21

05.04 13:15

05.04 12:44

05.04 12:22

05.04 12:22

05.04 12:20

05.04 12:02

05.04 12:02

05.04 12:01

Российские студенты выиграли ЧМ по программированию

Команда Санкт-Петербургского государственного университета (СПбГУ) стала победителем 40-го ежегодного Студенческого чемпионата мира по программированию Ассоциации вычислительной техники (ACM ICPC).

Чемпионат проходил на базе Университета им. принца Сонгкла. Он собрал свыше 1400 будущих разработчиков из 40 стран, которые соревновались на высшем уровне программирования, используя инструментальные средства IBM и API на базе IBM Cloud.

Самое престижное соревнование для программистов со штаб-квартирой в Университете Бэйлора (Baylor University), также известное как "Битва умов", объединило 128 студенческих команд, в каждой по три студента, которые всего за пять часов должны были справиться с несколькими сложнейшими задачами из реальной жизни. Команда-победитель СПбГУ решила 11 задач.

Шанхайский университет транспорта, Гарвардский университет и Московский физико-технический институт заняли второе, третье и четвертое места, соответственно и тоже получили золотые медали.

В финале ACM ICPC приняли участие 128 команд, которые выиграли в региональных турнирах, состоявшихся прошлой осенью. Изначально отбор проводился среди 300 тыс. студентов факультетов информационных технологий. На региональный уровень вышло рекордное количество финалистов: 40 266 участников из 2 736 университетов 102 стран мира, которые соревновались на 480 различных площадках и шести континентах с целью получить приглашения на финал чемпионата на остров Пхукет.

Американский IT-гигант IBM выступил спонсором соревнований. "IBM высоко ценит возможность увидеть лучшие студенческие таланты из ведущих университетов мира и показать им тренды и драйверы грядущих изменений. Например, средства для работы с облачными и когнитивными технологиями и неструктурированными данными, – сказал Джеральд Лейн, руководитель подразделения открытых технологий и программных продуктов IBM и спонсорской программы ACM ICPC. – Этим студентам предстоит стать лидерами отрасли, и мы своими знаниями хотим внести вклад в их развитие и подготовку к будущей карьере".

По данным Evans Data, к 2020 г. число программистов, использующих облачные технологии, достигнет 25 млн человек. Спонсорская программа позволяет IBM передавать участникам чемпионата знания о своих разработках в этой области.

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

Лучшие 12 команд-медалистов:

  • Санкт-Петербургский государственный университет (золотая медаль, чемпион мира 2016 г.)
  • Шанхайский университет транспорта (золотая медаль, второе место)
  • Гарвардский университет (золотая медаль, третье место)
  • Московский физико-технический институт (золотая медаль, четвертое место)
  • Варшавский университет (серебряная медаль, пятое место)
  • Массачусетский технологический институт (серебряная медаль, шестое место)
  • Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики (серебряная медаль, седьмое место)
  • Уральский федеральный университет (серебряная медаль, восьмое место)
  • Вроцславский университет (бронзовая медаль, девятое место)
  • Нижегородский государственный университет (бронзовая медаль, десятое место)
  • Львовский национальный университет (бронзовая медаль, одиннадцатое место)
  • Университет Фудань (бронзовая медаль, двенадцатое место)

В эти выходные в Санкт-Петербурге состоялся региональный тур чемпионата по программированию TopCoder Open — в число победителей вошли шесть студентов и выпускников Университета ИТМО. Теперь им предстоит сразиться с победителями других региональных туров за два места в финале чемпионата, который пройдет с 18 по 21 ноября в Вашингтоне (США).

TopCoder Open 2016: как устроен личный чемпионат по программированию и кто победил в региональном этапе

В число финалистов TopCoder Open войдут восемь лучших участников онлайн-туров, которые стартовали еще в марте . Еще два места зарезервированы для участников очных региональных соревнований: десятки победителей каждого из региональных этапов разыграют их в ходе так называемого Wildcard Round. На первый взгляд, очные турниры — самый простой способ попасть в финал за минимальное количество шагов, так как в онлайне необходимо обойти тысячи программистов из разных стран. Однако на очные мероприятия съезжается цвет мирового спортивного программирования — победители всевозможных чемпионатов, олимпиад и хакатонов, и занять первые строчки рейтинга здесь гораздо сложнее.


3 сентября на петербургский этап TopCoder Open Algorithm пришли 56 человек. У каждого — свой ноутбук, кто-то захватил тройник или удлинитель: по опыту предыдущих соревнований, розеток хватает не на всех. Для участия в турнире нужно зайти на «арену» TopCoder : все задания, разработанные эксклюзивно для регионального этапа, раздаются, выполняются и проверяются здесь. За решение каждой выдается определенное количество очков, и «стоимость» задачи начинает снижаться сразу после того, как участник открыл условия. Для самой простой задачи с максимальной стоимостью в 250 очков нужно вычислить наименьшее количество ходов, за которое можно победить противника в пошаговой RPG, если у игрока в распоряжении два вида атаки — normalAttack и buffedAttack. По словам Лидии Перовской, решить ее может даже обладатель базовых навыков программирования; однако турнирных задач три, две оставшиеся значительно сложнее, и в общей сложности на фазу кодинга отводится всего 85 минут.


«Когда участник отправляет ответ, результат ему сообщается только по итогам предварительных тестов — по сути, в его решение подставляются только условия из задачи. Но после фазы Coding наступает очень важная фаза Challenge, в ходе которой каждый участник проверяет на ошибки чужое решение. Если он найдет случай, в котором решение выполняется неверно или слишком долго, он может заработать дополнительные очки и отыграть время, потерянное во время фазы кодинга. Для этого нужно придумать тест, на котором решение даст неправильный ответ: например, если оппонент не рассмотрел частный случай, в котором какой-то из входных параметров будет иметь значение „0“, и делит на него, — объясняет Лидия Перовская. — Забавно то, что эти случаи могут быть добавлены к общему набору тестов, и твое решение может „упасть“ на твоем же тесте. Часто бывает и так, что человек своим тестом „заваливает“ большое количество чужих решений, но зарабатывает только 50 очков за одного оппонента» .


По результатам петербургского TopCoder Open Algorithm решения всех трех задач отправили только два участника — двукратный чемпион ACM ICPC Геннадий Короткевич и двукратный серебряный медалист ACM ICPC Петр Митричев , однако системные тесты прошло только решение Митричева. Шестеро из десятки победителей регионального тура — выпускники и студенты Университета ИТМО: Адам Бардашевич , Борис Минаев , Нияз Нигматуллин , Илья Збань и Вадим Семенов . Кроме того, в число лучших вошли студенты СПбГУ Айдар Сайранов и Игорь Пышкин , выпускник МФТИ Яков Длугач и выпускник МГУ Егор Куликов . Сразиться за участие в финале TopCoder Open с победителями других региональных раундов им предстоит 10 сентября.