"Jonli jang": Portodagi ICPC finali

bugun Portugaliyaning Portu shahrida ICPC 2019 xalqaro dasturlash tanlovining final bosqichi bo‘lib o‘tadi.Unda ITMO universiteti va Rossiya, Xitoy, Hindiston, AQSH va boshqa mamlakatlardagi universitetlarning boshqa jamoalari vakillari ishtirok etadi. Keling, sizga batafsilroq aytib beraylik.

"Jonli jang": Portodagi ICPC finali
icpcnews /Flickr/ CC BY / Pxuketdagi ICPC-2016 final bosqichidan suratlar

ICPC nima

ICPC talabalar oʻrtasida dasturlash boʻyicha xalqaro tanlovdir. Ular 40 yildan ortiq vaqt davomida o'tkazib kelinmoqda - birinchi final o'tib ketdi 1977 yilda. Tanlov bir necha bosqichda amalga oshiriladi. Universitetlar mintaqalar bo'yicha (Yevropa, Osiyo, Afrika, Amerika va boshqalar) bo'linadi. Ularning har biri oraliq bosqichlarga, xususan, Shimoliy Yevroosiyo yarim finaliga mezbonlik qiladi universitetimizda bo'lib o'tdi. Final bosqichida hududiy bosqich g‘oliblari ishtirok etadi.

ICPCda uchta ishtirokchidan iborat jamoalarga bitta kompyuter (Internetga ulanmagan) yordamida bir qator muammolarni hal qilish taklif etiladi. Shunday qilib, dasturlash ko'nikmalaridan tashqari, jamoada ishlash ko'nikmalari ham sinovdan o'tkaziladi.

ITMO universiteti jamoalari yetti marta ICPC bosh sovrinini qo‘lga kiritdilar. Bu ko'p yillar davomida saqlanib qolgan mutlaq rekorddir. Ular ICPC Cup 2019 uchun kurashda to'qnash kelishadi Butun sayyoradan 135 guruh. ITMO universiteti bu yil tomonidan taqdim etiladi Ilya Poduremennyx, Stanislav Naumov и Roman Korobkov.

Final qanday o'tadi?

Musobaqa davomida jamoalar bitta kompyuter oladi uch kishi uchun. U Ubuntu 18.04 da ishlaydi va vi/vim, gvim, emacs, gedit, geany va kate oldindan o'rnatilgan. Python, Kotlin, Java yoki C++ da dasturlar yozishingiz mumkin.

Jamoa muammoni hal qilganda, uni kodni baholaydigan test serveriga yuboradi. Ishtirokchilar mashina qanday sinovlarni amalga oshirayotganini bilishmaydi. Agar ularning barchasi muvaffaqiyatli bo'lsa, jamoa bonus ball oladi. Aks holda xatolik yuzaga keladi va talabalar kodni tuzatish uchun yuboriladi.

ICPC qoidalariga ko'ra, eng ko'p muammolarni hal qilgan jamoa g'alaba qozonadi. Agar bunday jamoalar bir nechta bo'lsa, unda g'olib eng kichik penalti vaqti bilan aniqlanadi. Ishtirokchilar har bir hal qilingan muammo uchun jarima daqiqalari oladi. Daqiqalar soni tanlov boshlanishidan test serveri tomonidan topshiriqni qabul qilishgacha bo'lgan vaqtga teng. Agar jamoa yechim topsa, uni uzatishga har bir noto'g'ri urinish uchun yana yigirma daqiqa jarima oladi.

"Jonli jang": Portodagi ICPC finali
icpcnews /Flickr/ CC BY / Pxuketdagi ICPC-2016 final bosqichidan suratlar

Namuna muammolar

Chempionatning maqsadlari jamoaviy muvofiqlashtirish va konsentratsiyani talab qiladi. Bundan tashqari, ular individual matematik algoritmlar bo'yicha bilimlarni sinovdan o'tkazadilar. ICPC 2018 ishtirokchilariga taklif qilingan topshiriqning namunasi:

Tipografiyada "daryo" atamasi mavjud - bu bir necha qator matnlardan hosil bo'lgan so'zlar orasidagi bo'shliqlar ketma-ketligi. Ma'lum bir daryo mutaxassisi (haqiqiy) kitob nashr qilishni xohlaydi. U monospased shriftda chop etishda sahifada eng uzun tipografik daryolar "shakllanishini" xohlaydi. Ishtirokchilar ushbu shart bajariladigan maydonlarning kengligini aniqlashlari kerak edi.

Kirishda dastur matndagi so'zlar sonini aniqlaydigan n (2 ≤ n ≤ 2) butun sonini oldi. Keyinchalik, matn kiritildi: bir qatordagi so'zlar bir bo'sh joy bilan ajratilgan va 500 dan ortiq belgidan iborat bo'lishi mumkin emas.

Chiqishda dastur eng uzun "daryo" hosil bo'lgan maydonlarning kengligini va bu daryoning uzunligini ko'rsatishi kerak edi.

To'liq ro'yxat orqaga o'tgan yildan beri va shuningdek tushuntirishlar bilan ularga yechimlar ICPC veb-saytida topish mumkin. O'sha yerda. testlar bilan arxiv mavjud, unda ishtirokchilarning dasturlari "fosh qilingan".

Shunday qilib, bugun tushdan keyin chempionat saytida va YouTube kanali Voqea joyidan jonli efir bo'ladi. Hozir mavjud ko'rsatishdan oldingi yozuvlar.

Habré blogida yana nima bor:

Manba: www.habr.com

a Izoh qo'shish