Задачи с чемпионата мира по программированию ICPC 2021
В 2021 году финал чемпионата мира по программированию среди университетских команд ICPC (International Collegiate Programming Contest) прошел в Москве в начале октября.
Участникам нужно было решить 15 задач на трёх компьютерах (раньше было меньше задач и 1 компьютер).

Золото
1) ННГУ (Нижний Новгород)
2) Seoul National University (Корея)
3) ИТМО (Санкт-Петербург)
4) МФТИ (Москва)
Серебро
5) University of Wroclaw (Польша)
6) University of Cambridge (США)
7) Беларусский государственный университет (Минск)
8) University of Bucharest (Румыния)
Бронза
9) Massachusetts Institute of Technology (США)
10) ХНУРЭ (Харьков)
11) University of Illinois at Urbana-Champaign (США)
12) НИУ ВШЭ (Москва)
13) СПбГУ (Санкт-Петербург)
14) University of Warsaw (Польша)
15) Utrecht-Leiden University (Нидерланды)
16) Harvard University (США)
17) University of Central Florida (США)
18) National Taiwan University (Тайвань)
19) Питерский филиал ВШЭ (Санкт-Петербург)
20) МГУ (Москва)
Команда Нижегородского государственного университета им. Н.И. Лобачевского выиграла чемпионат мира по программированию среди университетских команд ICPC (International Collegiate Programming Contest), став абсолютным чемпионом этого года.
В финале ICPC этого года должны были принять участие 175 университетов из 63 стран мира. Но из-за пандемии COVID-19 с соревнований снялись 18 команд от Китая. От России и Индии в финал прошли по 15 команд, от CША — 14, от Бразилии – 9, от Южной Кореи – 6.
Участникам нужно было решить 15 задач на трёх компьютерах (раньше было меньше задач и 1 компьютер).
Задачи 2021
- Задачи 2021 одним файлом PDF
- Задачи 1974-2019
Российские студенты победили на Международной олимпиаде по программированию ICPC
Студенты нижегородского Университета Лобачевского стали абсолютными победителями Международной студенческой олимпиады по программированию ICPC. Другие российские университеты получили еще два комплекта золотых медалей и один комплект бронзовых. Полные результаты доступны на сайте Университета Бэйлора, организующего олимпиаду.
Международная студенческая олимпиада по программированию (ICPC) проводится ежегодно с 1977 года, и в настоящее время в ней принимают студенты из более чем сотни стран. Олимпиада проходит в командном формате, причем от одной страны может быть более одной команды. Команды состоят из троих участников: допускаются студенты, прошедшие не более восьми семестров обучения, которым не исполнилось 25 лет. В 2021 году (формально олимпиада проводится за 2020 год, в котором из-за пандемии ее отменили) во время соревнований участникам давали 15 задач по реально существующим проблемам, по одному компьютеру на участника и пять часов для решения. Итоговый зачет строится на основе того, как много задач решили команды и как быстро они это сделали. Решения можно писать на C, C++, Python, Java и Kotlin.
В 2021 году победителями стали студенты из Университета Лобачевского, находящегося в Нижнем Новгороде. Это единственная команда, решившая 12 задач, причем два решения студенты сдали первыми. В ее состав вошли Николай Калинин, Алексей Данилюк и Валерия Рябчикова, тренерами были Алексей Шмелёв и Владислав Епифанов, а руководителем команды — Николай Борисов.
Золото досталось еще трем командам, которые решили 11 задач. Вторыми стали студенты из Сеульского университета, а третьими и четвертыми — студенты из ИТМО и МФТИ соответственно. Бронзовую награду среди российских участников получили студенты из ВШЭ, решившие 9 задач и занявшие 12 место.
В 2019 году, фактически на предыдущей олимпиаде, первое место заняла команда МГУ, а студенты из ВШЭ и МФТИ получили бронзовые медали.
Григорий Копиев
Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.
Правильное решение
Пять правил успешной IТ-стажировки
Как попасть на работу в сфере IT без опыта работы? Хороший способ попробовать свои силы, познакомиться с работодателем и зарекомендовать себя — пойти на стажировку. Редакция N + 1 на примере программы Росатома подготовила пять универсальных правил, которые помогут попасть на желаемую IT-стажировку и остаться работать в компании. Правило 1. Выбирайте не только профессию, но и компанию Важно не только выбрать дело по душе, но и подобрать себе подходящее место работы — в наши дни это чуть ли не важнее, чем сама профессия. Хотели бы вы строить карьеру именно с этим работодателем? Если после стажировки вы надеетесь получить трудоустройство, внимательно изучите, чем компания занимается и насколько это близко вам лично. Может прозвучать неожиданно, но в Росатоме — госкорпорации, занимающейся атомной промышленностью, — есть IT-направление. Сотрудники разрабатывают цифровые продукты разного масштаба: от создания программных роботов и цифровизации Северного морского пути до строительства новых электростанций. Попасть на работу в госкорпорацию легче, чем кажется! Особенно если вы студент или выпускник старших курсов технических или IT-специальностей. Поддержка. Формат программы уникален, участие бесплатное и дистанционное. Команде участников предстоит решить реальный кейс при постоянной поддержке куратора и наставничестве эксперта. Кстати, участие в Case Lab можно засчитать как производственную практику в университете. А лучшие студенты получат приглашение на оплачиваемую стажировку в штат Гринатома и другие проекты Росатома. Правило 2. Определитесь, какое направление для вас Ок, с компанией определились. Что дальше? Нужно выбрать направление. Чем четче вы сформулируете свои предпочтения в работе, тем проще будет найти подходящую стажировку. А кандидат с четкой расстановкой приоритетов, безусловно, лучше выглядит в глазах работодателя. В Росатоме открывается много проектов, поэтому список программ Case Lab постоянно обновляется. Вот самые популярные направления: Аналитика и системный подход В условиях импортозамещения самые популярные системы учета в России и СНГ — это продукты 1С, которые используют 1,5 миллиона компаний. С их помощью можно считать зарплату сотрудников, контролировать расчеты с подрядчиками и клиентами, вести документооборот, сводить бухгалтерский баланс, формировать отчеты и делать многое другое. На Case Lab от Гринатома команды участников на реальных примерах изучают, как устроены автоматизация деятельности предприятия, подсчет зарплат, контроль расчетов с подрядчиками и клиентами через систему 1C, и с нуля обучаются новой профессии: 1С-аналитик или 1С-разработчик. Похожий трек есть и по направлению SAP. Там участники работают с SAP BI — системой обработки информации для бизнес-анализа, с помощью которой проводят стратегический анализ данных и принимают стратегические решения в компании. Поддержка В любой технологической компании есть несколько линий поддержки. Чем они отличаются друг от друга? Близостью к пользователю или системе: от непосредственной работы с пользователем до технических вопросов эксплуатации и низкоуровневого взаимодействия с кодом системы. Участники программы Support изучают построение IТ-инфраструктуры и знакомятся со спецификой работы в сфере IT. По итогам марафона Росатом открывает набор на стажировки по разным направлениям: первая линия поддержки пользователей, поддержка видео-конференц-связи или корпоративной системы передачи данных, администрирование систем коммуникаций Microsoft, работа с серверным оборудованием или автоматизация IТ-инфраструктуры. Веб-разработка Если хочешь быть востребованным специалистом, лучше всего изучать JavaScript или Java. Программа подходит для всех, кто начинает делать первые шаги к карьере в IТ. Подготовка идет по двум направлениям: разработка и системная аналитика. Участники учатся создавать, настраивать и кастомизировать несложные сайты, а также пробуют на практике работу в Scrum-команде. Кстати, в Case Lab ребята пишут на JavaScript. Правило 3. Не пренебрегайте конкурсами, хакатонами и другими программами поддержки молодых специалистов Крупные IT-компании давно следуют принципу, что лучше обучить новичков под свой проект с нуля, чем заниматься «перепрошивкой» готового специалиста. Проявите себя — так больше шансов, что вас заметят. Так, для желающих попасть на оплачиваемую стажировку в Росатом после Case Lab учитываются баллы рейтинга, мотивация и умение работать в команде. Программа подготовки к IT-стажировкам по всем направлениям бесплатная и проходит в дистанционном формате. Участникам предлагают совместно решить кейс на основе реальной ситуации. В процессе обучения команду сопровождает куратор, который еженедельно дает обратную связь, а также эксперт, проверяющий выполненное задание. На еженедельных встречах с экспертом участники могут задать вопросы и обменяться опытом. Правило 4. Интегрируйтесь в компанию по максимуму Не забывайте напоминать о себе. Принимайте приглашения на все встречи и совместные мероприятия, не стесняйтесь общаться. В вас должны видеть не только профессионала, но и приятного человека, с которым хочется иметь дело. Стажировка Гринатома может быть рассчитана как на полную, так и на частичную занятость. Руководители помогают стажерам адаптироваться в атомной отрасли и постепенно ставят перед ними практические задачи. Все стажеры официально трудоустроены, а их работа оплачивается исходя из фактической занятости. Росатом заинтересован в том, чтобы после стажировки участники программы остались работать в IT-блоке разных предприятий атомной отрасли. Чтобы участники не чувствовали себя оторванными от коллег, каждую пятницу проводятся развлекательно-познавательные тренинги — онлайн-встречи, на которых сотрудники компании делятся опытом и советами, как успешно пройти стажировку или развить soft skills. Во время онлайн-митапов и квизов стажеры знакомятся между собой и погружаются в процессы компании. IT-вакансии для стажеров доступны как удаленно, так и в офисе в разных городах России. Большинство стажировок можно проходить удаленно, и в этом, на наш взгляд, огромный плюс. Также не забывайте принимать участие во всех активностях компании: в Гринатоме есть беговой клуб, сообщество волонтеров, языковые клубы и многое другое. Правило 5. Не забывайте, стажировка — это полноценная работа Если вы хотите остаться в компании, относитесь к стажировке так же, как к полноценной работе. У вас будет руководитель-наставник, но это уже не учеба. Чтобы стать постоянным сотрудником одной из компаний Росатома, нужно пройти программу стажировки и получить положительную обратную связь от руководителя и наставника. Если все требования будут учтены, вас переведут на позицию джуниора. 80% стажеров Росатома заключают постоянный контракт. Если вам интересна работа в IT-блоке атомной отрасли — подавайте заявку, набор на стажировки открыт круглый год. За подробностями следите в группе «IT-стажировки Росатома» во «ВКонтакте» и на сайте.
Что такое ACM ICPC
ACM ICPC, или International Collegiate Programming Contest, — чемпионат мира по спортивному программированию, который ежегодно проходит под эгидой Ассоциации вычислительной техники (ACM). На протяжении нескольких десятилетий эти четыре слова означают самое престижное командное состязание молодой программистской элиты.
International
Впервые за пределами США финал ICPC состоялся в 1999 году в Нидерландах, а затем в разные годы чемпионат принимали университеты Канады, КНР, Японии, Чехии, Польши, Швеции и России. В борьбе за право назваться интеллектуальной столицей 2014 года победил Екатеринбург. Более 30 000 участников из 2 300 университетов 91 страны мира соревновались в отборочных турнирах за возможность приехать на финал в Россию.
Collegiate
Соревнование было и остается состязанием лучших студентов IT-специальностей. Люди, которые хотят быстро развиваться в этой сфере, как и раньше сосредоточены в вузах. Чемпионат и подготовка к нему позволяют молодым программистам не только совершенствовать свои навыки и учиться работать в команде, но и заявить о себе в мировом IT-сообществе.
Programming Contest
Как любой мировой турнир, соревнование проходит по определенным правилам. Каждой из команд (по 3 человека) предоставляется компьютер и 5 часов на решение 10-12 сложнейших математических задач. Решением задачи является программа, успешно прошедшая тесты жюри. Побеждает команда, решившая наибольшее число задач, а в случае равенства правильных ответов — команда, затратившая на это меньше времени.
Сегодня компьютерное программирование не знает границ и стало настоящим интеллектуальным спортом, за которым следят не только крупнейшие IT-компании, но и все, кому интересно развитие компьютерных технологий.
Добро пожаловать на финал ACM ICPC 2014 в Екатеринбург!
Icpc что это
В последние годы в отборочных турах ICPC участвуют уже более 60 000 студентов-программистов из более 3000 университетов 115 стран. По масштабу соревнования могут поспорить с крупнейшими спортивными турнирами.

Ежегодно ICPC собирает больше участников, чем Олимпийские игры. Например, в 2017 году в чемпионате приняли участие 46 381 человек из 103 стран, в то время как в летней Олимпиаде в Рио-де-Жанейро на всех этапах участвовали 11 544 спортсмена.
Спортивное программирование ― это так же круто, как Олимпийские игры. И даже круче. Вот 5 аргументов
ICPC во многом похож на Олимпийские игры и другие крупнейшие спортивные соревнования. Чемпионат является самым масштабным турниром по спортивному программированию. Задача спортивных программистов ― писать код и решать нестандартные задачи на время. При этом важно найти не только самое быстрое, но и самое эффективное решение.

Поэтому олимпиадное программирование можно сравнить с шахматами или «Формулой-1» ― здесь также важна не только скорость, но и стратегия. Неслучайно спортивные программисты считаются самыми изобретательными специалистами в своей области, ведь они учатся искать неочевидные подходы к решению задач, делать это быстро и выдавать итоговое решение в виде компактного, эффективного кода.
Как и в спорте, участники команд годами тренируются, чтобы представить свой университет в финале ICPC. До соревнований они изучают языки программирования, отрабатывают разные технологии и решают рутинные задачи, чтобы непосредственно на турнире показать максимум своих возможностей.
В финале ICPC на поиск оптимального решения конкретной задачи у участника есть в среднем 25–30 минут (за 300 минут соревнований нужно решить 12 задач). При этом лучшие спортивные программисты решают задачи еще быстрее — за пять-семь минут.
Например, Николай Будин, один из членов сборной ИТМО, который вместе с Арсением Кирилловым и Дмитрием Саютиным представит университет в финале чемпионата в Москве, активно занимается программированием с восьмого класса школы. К разным этапам ICPC он готовился с первого курса бакалавриата (с 2015 года). Николай также сам проводит тренировки для начинающих на факультете информационных технологий и программирования ИТМО, на них приглашаются все желающие студенты вуза. Вот чат тренировок, вы тоже можете попробовать.
Тренировки, как и у спортсменов, проходят регулярно и занимают по несколько часов. Как отмечает двукратный чемпион ICPC Нияз Нигматуллин, перед тем, как поехать на финал чемпионата, он вместе с командой тренировался минимум дважды в неделю ― каждая из тренировок длилась по пять часов. Кроме этого, не меньше семи часов в неделю каждый член команды готовился индивидуально.

Николай Будин

«При подготовке к чемпионату прежде всего важен личный рост, изучение новых подходов, решение большой базы задач. Если нам требуется улучшить навыки в некотором типе задач, мы открываем базу, решаем, читаем статьи, общаемся в интернете с другими ребятами, чтобы получить ценные советы. Без самостоятельной работы приносить пользу команде будет очень сложно. Кроме этого, в интернете много индивидуальных онлайн-соревнований. Они помогают сконцентрироваться, проверить свои силы, когда время ограничено, и увидеть, каких еще навыков не хватает.
Нияз Нигматуллин, двукратный чемпион ICPC,
ассистент факультета информационных технологий и программирования ИТМО
Также важная часть подготовки к командным соревнованиям ― это тренировки в команде. Они длятся по пять часов и выглядят как симуляция соревнования, на них участники на время решают задачи с прошлых турниров. Это, конечно, не совсем то же самое, что и реальный контест, но очень близко и помогает тренироваться в боевом режиме. После тренировок команда и тренер обсуждают, что не получилось, анализируют, что члены команды делали в разные моменты времени в течение пяти часов, и определяют, что можно улучшить».
Как и на Олимпиаде, отбор на финал ICPC проходит по многоступенчатой схеме: все университеты мира разбиты по территориальному признаку на регионы, в которых проводятся полуфиналы. Например, Россия, Беларусь, Казахстан, страны Прибалтики, Кавказа и Средней Азии объединены в единый регион — Северную Евразию. Крупные регионы разбиты также на подрегионы, которые имеют свои четвертьфиналы.

Для каждого полуфинала ежегодно определяется квота команд, которые выходят от данного полуфинала в финал. Квота зависит от ряда факторов: от количества команд, участвовавших в отборочных соревнованиях от данного региона, результатов, показанных регионом за историю участия в ICPC, и так далее. В региональных соревнованиях один университет может быть представлен несколькими командами, но на финал от университета может отправиться только одна.
И, конечно, как на любых больших соревнованиях, не обходится без своих традиций и забавных историй.
Как-то во время основного пятичасового тура полуфинального соревнования ICPC участник одной из команд начал делать пару десятков отжиманий от пола. При этом почти все эти пять часов команда шла в лидерах соревнования. Чтобы понимать, в чем суть, поясню правила: в ICPC, если несколько команд решили одинаковое количество задач, победитель определяется по времени, которое было затрачено на решение: чем быстрее команда справилась с заданием, тем выше ее позиция. Также предусмотрены штрафы: если команда отправила неправильное решение, ко времени добавляют штрафные 20 минут. Естественно, команды хотят этого избежать, ведь со штрафами шансов на победу становится меньше.
В узких кругах спортивных программистов есть даже такой развлекательно-поучительный способ тренировки: если тот, кто решал задачу, отправил неправильное решение, то в качестве «наказания» этот участник делает 20 отжиманий. И вот участники той команды договорились сделать это и в официальном соревновании. Думаю, любой, кто не знаком с ICPC, был бы очень удивлен тому, что посреди напряженного турнира, где важна каждая минута, человек внезапно встает и начинает отжиматься. От меня команде уважение, я бы на такое не смог решиться.
Нияз Нигматуллин, двукратный чемпион ICPC, ассистент факультета информационных технологий и программирования ИТМО
А еще у каждой команды есть свой тренер. А среди тренеров, как и в футболе, есть свои легенды. Все команды ИТМО, становившиеся абсолютными чемпионами мира, тренировал Андрей Станкевич. За 20 лет он подготовил не одно поколение победителей и призеров чемпионата ICPC. Несколько лет назад за эти заслуги Станкевичу вручили престижную награду ACM ICPC Senior Coach Award.


Международная Ассоциация вычислительной техники и раньше высоко оценивала вклад петербургского преподавателя в развитие отрасли: на его счету международная премия ACM ICPC Founder’s Award за участие в организации олимпиад программистов в Европе. Помимо этого, его труд отметила и корпорация IBM, которая в 2008 году наградила его специальной премией за успехи в тренерской работе.
Андрей Станкевич также посвящает немалую часть своего времени олимпиадам по программированию для школьников и студентов не только Северной столицы, но и всей России. Он составляет задачи, занимается организацией и является председателем жюри крупных конкурсов городского и федерального масштаба.
И наконец, как и в спорте, среди самих спортивных программистов есть свои звезды. Главные технические разработчики «ВКонтакте» и Telegram — Николай Дуров и Андрей Лопатин — дважды чемпионы мира по спортивному программированию. Еще один призер ICPC — предприниматель Тони Шей ― спустя всего три года после победы в чемпионате заработал 265 млн долларов, а затем создал онлайн-магазин одежды Zappos.com (в 2009 году Amazon заплатила за нее 1,2 млрд долларов). Также среди победителей чемпионата — сооснователь Facebook Адам Ди Анджело, бывший директор по технологиям Google Крейг Силверстайн и один из нынешних ведущих инженеров компании Петр Митричев.
А в аспирантуре Университета ИТМО учится двукратный чемпион ICPC и самый титулованный спортивный программист планеты Геннадий Короткевич (tourist). Он много раз побеждал на международных и всероссийских чемпионатах и турнирах по спортивному программированию, в том числе организованных крупными компаниями: Google, IBM, Facebook, «ВКонтакте», «Яндекс» и Mail.ru Group. А с недавних пор Геннадий Короткевич начал и сам тренировать новое поколение программистов.