"Battle Live": finale ICPC v Portu

Danes V portugalskem mestu Porto bo finale mednarodnega programerskega tekmovanja ICPC 2019. Udeležili se ga bodo predstavniki Univerze ITMO in druge ekipe univerz iz Rusije, Kitajske, Indije, ZDA in drugih držav. Povejmo vam podrobneje.

"Battle Live": finale ICPC v Portu
icpcnews /flickr/ CC BY / Fotografije s finala ICPC-2016 v Phuketu

Kaj je ICPC

ICPC je mednarodno tekmovanje študentov v programiranju. Potekajo že dobrih 40 let – prvi finale mimo davnega leta 1977. Izbor poteka v več fazah. Univerze so razdeljene po regijah (Evropa, Azija, Afrika, Amerika itd.). Vsak od njih gosti vmesne faze, zlasti polfinale Severne Evrazije potekalo na naši univerzi. Zmagovalci regijskih stopenj se udeležijo finala.

Na ICPC so ekipe treh udeležencev pozvane, da rešijo številne probleme z uporabo enega računalnika (brez povezave z internetom). Tako se poleg veščin programiranja preverjajo tudi veščine timskega dela.

Ekipe Univerze ITMO so sedemkrat osvojile glavno nagrado ICPC. To je absolutni rekord, ki se drži že vrsto let. Pomerili se bodo v boju za pokal ICPC 2019 135 skupin z vsega planeta. Univerzo ITMO letos zastopa Ilja Poduremennih, Stanislav Naumov и Roman Korobkov.

Kako bo potekal finale?

Med tekmovanjem ekipe bo prejel en računalnik za tri osebe. Poganja Ubuntu 18.04 in ima prednameščene vi/vim, gvim, emacs, gedit, geany in kate. Programe lahko pišete v Pythonu, Kotlinu, Javi ali C++.

Ko ekipa reši problem, ga posreduje testnemu strežniku, ki ovrednoti kodo. Udeleženci ne vedo, katere teste stroj izvaja. Če so vsi uspešni, ekipa prejme dodatne točke. V nasprotnem primeru se ustvari napaka in učenci so poslani, da popravijo kodo.

Po pravilih ICPC zmaga ekipa, ki reši največ problemov. Če je takih ekip več, zmagovalca določi najmanjši kazenski čas. Za vsako rešeno nalogo udeleženci prejmejo kazenske minute. Število minut je enako času od začetka tekmovanja do sprejema naloge s strani testnega strežnika. Če ekipa najde rešitev, prejme še dvajset minut kazni za vsak nepravilen poskus, da jo preide.

"Battle Live": finale ICPC v Portu
icpcnews /flickr/ CC BY / Fotografije s finala ICPC-2016 v Phuketu

Primeri nalog

Cilji prvenstva zahtevajo ekipno usklajenost in koncentracijo. Dodatno preverjajo znanje posameznih matematičnih algoritmov. Tukaj je primer naloge, ki je bila ponujena udeležencem ICPC 2018:

V tipografiji obstaja izraz "reka" - to je zaporedje presledkov med besedami, ki je sestavljeno iz več vrstic besedila. Neki strokovnjak za reke (zares) želi izdati knjigo. Želi, da se pri tiskanju v enoprostorski pisavi na strani »tvorijo« najdaljši tipografski reki. Udeleženci so morali določiti širino polj, pri kateri bo ta pogoj izpolnjen.

Na vhodu je program prejel celo število n (2 ≤ n ≤ 2), ki določa število besed v besedilu. Nato je sledil vnos besedila: besede v eni vrstici so bile ločene z enim presledkom in niso smele vsebovati več kot 500 znakov.

Na izhodu je moral program prikazati širino polj, na katerih nastane najdaljša »reka«, in dolžino te reke.

Celoten seznam nazaj od lani in tudi rešitve le-teh z obrazložitvijo najdete na spletni strani ICPC. Ibid. obstaja arhiv s testi, ki so mu bili »izpostavljeni« programi udeležencev.

Torej danes popoldne na spletni strani prvenstva in YouTube-kanale Sledil bo neposredni prenos s prizorišča. Na voljo sedaj posnetki pred predstavo.

Kaj še imamo na blogu na Habréju:

Vir: www.habr.com

Dodaj komentar