hodiaŭ En la portugala urbo Porto okazos la finalo de la internacia programa konkurso ICPC 2019. En ĝi partoprenos reprezentantoj de ITMO-Universitato kaj aliaj teamoj de universitatoj en Rusio, Ĉinio, Barato, Usono kaj aliaj landoj. Ni diru al vi pli detale.
icpcnews /flickr/ CC BY / Fotoj de la ICPC-2016-finalo en Phuket
Kio estas ICPC
ICPC estas internacia programa konkurso inter studentoj. Ili estas okazigitaj dum pli ol 40 jaroj - la unua finalo pasis reen en 1977. La elekto estas farita en pluraj etapoj. Universitatoj estas dividitaj laŭ regiono (Eŭropo, Azio, Afriko, Ameriko, ktp.). Ĉiu el ili aranĝas mezajn stadiojn, aparte la Nordeŭrazian duonfinalon okazis en nia universitato. La gajnintoj de la regionaj stadioj partoprenas en la finalo.
Ĉe ICPC, teamoj de tri partoprenantoj estas petataj solvi kelkajn problemojn uzante unu komputilon (ne konektita al Interreto). Tiel, krom programaj kapabloj, teamlaborkapabloj ankaŭ estas provitaj.
ITMO-universitataj teamoj gajnis la ĉefpremion de ICPC sep fojojn. Ĉi tio estas absoluta rekordo, kiu eltenis multajn jarojn. Ili interbatiĝos en la batalo por la ICPC-Pokalo 2019 135 grupoj el la tuta planedo. ITMO-Universitato estas reprezentita ĉi-jare per Ilja Poduremennykh, Stanislav Naumov и Roman Korobkov.
Kiel okazos la finalo?
Dum la konkurso, teamoj ricevos unu komputilon por tri personoj. Ĝi funkcias Ubuntu 18.04 kaj havas vi/vim, gvim, emacs, gedit, geany kaj kate antaŭinstalitajn. Vi povas skribi programojn en Python, Kotlin, Java aŭ C++.
Kiam teamo solvas problemon, ĝi plusendas ĝin al la testa servilo, kiu taksas la kodon. Partoprenantoj ne scias kiajn provojn la maŝino faras. Se ĉiuj el ili sukcesas, la teamo ricevas krompunktojn. Alie, eraro estas generita kaj studentoj estas senditaj por korekti la kodon.
Laŭ ICPC-reguloj venkas la teamo, kiu solvas la plej multajn problemojn. Se ekzistas pluraj tiaj teamoj, tiam la gajninto estas determinita per la plej malgranda puntempo. Partoprenantoj ricevas punminutojn por ĉiu problemo solvita. La nombro da minutoj egalas al la tempo de la komenco de la konkurso ĝis la akcepto de la tasko fare de la testservilo. Se la teamo trovas solvon, tiam ĝi ricevas pliajn dudek minutojn da puno por ĉiu malĝusta provo pasi ĝin.
icpcnews /flickr/ CC BY / Fotoj de la ICPC-2016-finalo en Phuket
Ekzemplaj problemoj
La celoj de la ĉampioneco postulas teamkunordigon kaj koncentriĝon. Aldone, ili testas scion pri individuaj matematikaj algoritmoj. Jen ekzemplo de tasko, kiu estis ofertita al partoprenantoj de ICPC 2018:
En tipografio, ekzistas termino "rivero" - ĉi tio estas sekvenco de spacoj inter vortoj, kiu estas formita el pluraj linioj de teksto. Certa riverfakulo (vere) volas eldoni libron. Li volas, ke la plej longaj tipografiaj riveroj "formiĝu" sur la paĝo kiam presas en unuspaca tiparo. Partoprenantoj devis determini la larĝon de la kampoj ĉe kiuj ĉi tiu kondiĉo estus plenumita.
Ĉe la enigo, la programo ricevis entjeron n (2 ≤ n ≤ 2), kiu determinas la nombron da vortoj en la teksto. Poste, la teksto estis enigita: vortoj sur unu linio estis apartigitaj per unu spaco kaj ne povis konsisti el pli ol 500 signoj.
Ĉe la eligo, la programo devis montri la larĝon de la kampoj, ĉe kiuj la plej longa "rivero" formiĝas, kaj la longon de ĉi tiu rivero.