"Тулаан амьд": Порто дахь ICPC финал

Өнөөдөр ICPC 2019 програмчлалын олон улсын тэмцээний шигшээ тоглолт Португалийн Порту хотод болох бөгөөд ITMO их сургуулийн төлөөлөл болон ОХУ, БНХАУ, Энэтхэг, АНУ болон бусад орны их дээд сургуулиудын баг тамирчид оролцох юм. Ингээд танд илүү дэлгэрэнгүй хэлье.

"Тулаан амьд": Порто дахь ICPC финал
icpcnews /flickr/ CC BY / Пхукет хотод болсон ICPC-2016 шигшээ тоглолтын зургууд

ICPC гэж юу вэ

ICPC оюутнуудын дунд зохиогддог олон улсын програмчлалын тэмцээн юм. Тэд 40 гаруй жилийн турш зохион байгуулагдсан - анхны финал дамжуулсан буцаж 1977 онд. Сонголтыг хэд хэдэн үе шаттайгаар явуулдаг. Их сургуулиудыг бүс нутгаар нь (Европ, Ази, Африк, Америк гэх мэт) хуваадаг. Тэд тус бүрдээ завсрын шат, тухайлбал Хойд Евразийн хагас шигшээ тоглолтуудыг зохион байгуулдаг Манай их сургуульд болсон. Бүсийн шатанд шалгарсан тамирчид финалд оролцоно.

ICPC дээр гурван оролцогчтой багууд нэг компьютер (Интернэтэд холбогдоогүй) ашиглан хэд хэдэн асуудлыг шийдвэрлэхийг хүсдэг. Тиймээс програмчлалын ур чадвараас гадна багаар ажиллах чадварыг шалгадаг.

ITMO их сургуулийн багууд ICPC-ийн гол шагналыг долоон удаа хүртсэн. Энэ бол олон жилийн турш хадгалагдаж байгаа үнэмлэхүй дээд амжилт юм. Тэд 2019 оны ICPC цомын төлөөх тулаанд тулалдах болно Дэлхий даяарх 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

сэтгэгдэл нэмэх