«Тікелей шайқас»: Портудағы ICPC финалы

бүгін Португалияның Порту қаласында ICPC 2019 халықаралық бағдарламалау байқауының финалы өтеді, оған ITMO университетінің өкілдері және Ресей, Қытай, Үндістан, АҚШ және басқа елдердің университеттерінің басқа командалары қатысады. Толығырақ айтып берейік.

«Тікелей шайқас»: Портудағы ICPC финалы
icpcnews /flickr/ CC BY / Пхукеттегі ICPC-2016 финалынан фотолар

ICPC дегеніміз не

ICPC студенттер арасындағы халықаралық бағдарламалау байқауы болып табылады. Олар 40 жылдан астам уақыт бойы өткізіліп келеді - бірінші финал өтті сонау 1977 жылы. Таңдау бірнеше кезеңде жүзеге асырылады. Университеттер аймақтар бойынша (Еуропа, Азия, Африка, Америка және т.б.) бөлінеді. Олардың әрқайсысында аралық кезең, атап айтқанда Солтүстік Еуразия жартылай финалы өтеді университетімізде өтті. Финалға облыстық кезеңдердің жеңімпаздары қатысады.

ICPC-те үш қатысушыдан тұратын командаларға бір компьютерді (Интернетке қосылмаған) пайдалана отырып, бірқатар есептерді шешу ұсынылады. Осылайша, бағдарламалау дағдыларымен қатар, командалық жұмыс дағдылары да тексеріледі.

ITMO университетінің командалары ICPC бас жүлдесін жеті рет жеңіп алды. Бұл көп жылдар бойы сақталған абсолютті рекорд. Олар ICPC кубогы 2019 үшін шайқаста кездеседі Жер шарының түкпір-түкпірінен 135 топ. ITMO университеті биылғы жылы ұсынылған Илья Подуременных, Станислав Наумов и Роман Коробков.

Финал қалай өтеді?

Сайыс барысында командалар бір компьютер алады үш адамға. Ол Ubuntu 18.04 нұсқасымен жұмыс істейді және vi/vim, gvim, emacs, gedit, geany және kate алдын ала орнатылған. Сіз Python, Kotlin, Java немесе C++ тілінде бағдарламалар жаза аласыз.

Команда мәселені шешкенде, оны кодты бағалайтын тестілеу серверіне жібереді. Қатысушылар құрылғының қандай сынақтарды орындап жатқанын білмейді. Егер олардың барлығы сәтті болса, команда бонустық ұпайларды алады. Әйтпесе, қате жасалады және студенттер кодты түзетуге жіберіледі.

ICPC ережелеріне сәйкес, ең көп мәселені шешкен команда жеңеді. Егер мұндай командалар бірнеше болса, онда жеңімпаз ең аз айыппұл уақыты бойынша анықталады. Қатысушылар әрбір шешілген мәселе үшін айыппұл минуттарын алады. Минуттар саны конкурс басталғаннан тестілік сервер тапсырманы қабылдағанға дейінгі уақытқа тең. Егер команда шешімді тапса, оны берудің әрбір қате әрекеті үшін тағы жиырма минуттық айыппұл алады.

«Тікелей шайқас»: Портудағы ICPC финалы
icpcnews /flickr/ CC BY / Пхукеттегі ICPC-2016 финалынан фотолар

Үлгі есептер

Чемпионаттың мақсаттары командалық үйлестіруді және шоғырлануды талап етеді. Сонымен қатар, олар жеке математикалық алгоритмдер туралы білімдерін тексереді. Міне, ICPC 2018 қатысушыларына ұсынылған тапсырманың мысалы:

Типографияда «өзен» термині бар - бұл мәтіннің бірнеше жолынан жасалған сөздер арасындағы бос орындар тізбегі. Белгілі бір өзен маманы (шын мәнінде) кітап шығарғысы келеді. Ол бір кеңістікті шрифтпен басып шығару кезінде бетте ең ұзын типографиялық өзендердің «қалыптасуын» қалайды. Қатысушылар осы шарт орындалатын өрістердің енін анықтауы керек болды.

Енгізу кезінде бағдарлама мәтіндегі сөздердің санын анықтайтын n (2 ≤ n ≤ 2) бүтін санын алды. Содан кейін мәтін енгізілді: бір жолдағы сөздер бір бос орынмен бөлінген және 500 таңбадан аспауы керек.

Шығу кезінде бағдарлама ең ұзын «өзен» пайда болатын өрістердің енін және осы өзеннің ұзындығын көрсету керек болды.

Толық тізім кері былтырдан бері және де оларға түсініктемелер арқылы шешімдер ICPC сайтынан табуға болады. Сол жерде сынақтары бар мұрағат бар, оған қатысушылардың бағдарламалары «көрсетілді».

Сонымен бүгін түстен кейін чемпионаттың сайтында мен YouTube арнасы Оқиға орнынан тікелей трансляция болады. Қазір қол жетімді көрсету алдындағы жазбалар.

Хабре блогында тағы не бар:

Ақпарат көзі: www.habr.com

пікір қалдыру