„Battle Live“: ICPC финал в Порто

Днес В португалския град Порто ще се проведе финалът на международното състезание по програмиране ICPC 2019. В него ще участват представители на университета ITMO и други отбори от университети в Русия, Китай, Индия, САЩ и други страни. Нека ви разкажем по-подробно.

„Battle Live“: ICPC финал в Порто
icpcnews /flickr/ CC BY / Снимки от финалите на ICPC-2016 в Пукет

Какво е ICPC

ICPC е международно състезание по програмиране сред студенти. Провеждат се от над 40 години – първи финал бях още през 1977 г. Подборът се извършва на няколко етапа. Университетите са разделени по региони (Европа, Азия, Африка, Америка и др.). Всеки от тях е домакин на междинни етапи, по-специално на полуфиналите в Северна Евразия се проведе в нашия университет. Във финала участват победителите в регионалните етапи.

В ICPC екипи от трима участници са помолени да решат редица проблеми с помощта на един компютър (без връзка с интернет). Така освен уменията за програмиране се проверяват и уменията за работа в екип.

Отборите на университета ITMO са печелили главната награда на ICPC седем пъти. Това е абсолютен рекорд, който се задържа от много години. Те ще се сблъскат в битката за ICPC Cup 2019 135 групи от цялата планета. Университетът ITMO е представен тази година от Иля Подуременных, Станислав Наумов и Роман Коробков.

Как ще протече финалът?

По време на състезанието отборите ще получи един компютър за трима души. Работи с Ubuntu 18.04 и има предварително инсталирани vi/vim, gvim, emacs, gedit, geany и kate. Можете да пишете програми на Python, Kotlin, Java или C++.

Когато даден екип реши проблем, той го препраща към сървъра за тестване, който оценява кода. Участниците не знаят какви тестове извършва машината. Ако всички са успешни, отборът получава бонус точки. В противен случай се генерира грешка и учениците се изпращат да коригират кода.

Според правилата на ICPC отборът, който реши най-много проблеми, печели. Ако има няколко такива отбора, тогава победителят се определя от най-малкото наказателно време. За всяка решена задача участниците получават наказателни минути. Броят на минутите е равен на времето от началото на състезанието до приемането на задачата от тест сървъра. Ако отборът намери решение, тогава той получава още двадесет минути наказание за всеки неправилен опит да го премине.

„Battle Live“: ICPC финал в Порто
icpcnews /flickr/ CC BY / Снимки от финалите на ICPC-2016 в Пукет

Примери за задачи

Целите на първенството изискват отборна координация и концентрация. Освен това те проверяват знанията по отделни математически алгоритми. Ето пример за задача, предложена на участниците в ICPC 2018:

В типографията има термин "река" - това е последователност от интервали между думите, която се формира от няколко реда текст. Определен речен експерт (наистина) иска да издаде книга. Той иска най-дългите типографски реки да се „формират“ на страницата, когато печатате с моноширинен шрифт. Участниците трябваше да определят ширината на полетата, при които това условие ще бъде изпълнено.

На входа програмата получи цяло число n (2 ≤ n ≤ 2), което определя броя на думите в текста. След това беше въведен текстът: думите на един ред бяха разделени с един интервал и не можеха да съдържат повече от 500 знака.

На изхода програмата трябваше да покаже ширината на полетата, в които се образува най-дългата „река“, и дължината на тази река.

Пълен списък назад от миналата година и също решения към тях с обяснения можете да намерите на уебсайта на ICPC. Пак там. има архив с тестове, на които бяха „изложени“ програмите на участниците.

Така че този следобед на сайта на шампионата и YouTube канал Ще има пряко предаване от мястото на събитието. Наличен сега записи преди шоуто.

Какво друго имаме в блога на Хабре:

Източник: www.habr.com

Добавяне на нов коментар