Vandag Die eindronde van die internasionale programmeringskompetisie ICPC 2019 word in die Portugese stad Porto gehou.Verteenwoordigers van ITMO Universiteit en ander spanne van universiteite in Rusland, China, Indië, die VSA en ander lande sal daaraan deelneem. Kom ons vertel jou in meer detail.
icpcnews /flickr/ CC BY / Foto's van die ICPC-2016 finaal in Phuket
Wat is ICPC
ICPC is 'n internasionale programmeringskompetisie onder studente. Hulle word al meer as 40 jaar gehou – die eerste finaal geslaag terug in 1977. Die seleksie word in verskeie fases uitgevoer. Universiteite word volgens streek verdeel (Europa, Asië, Afrika, Amerika, ens.). Elkeen van hulle bied tussenfases aan, veral die Noord-Eurasiese halfeindronde het by ons universiteit plaasgevind. Die wenners van die streeksfases neem aan die eindronde deel.
By ICPC word spanne van drie deelnemers gevra om 'n aantal probleme op te los met een rekenaar (nie aan die internet gekoppel nie). Dus, benewens programmeringsvaardighede, word spanwerkvaardighede ook getoets.
Tydens die kompetisie, spanne sal een rekenaar ontvang vir drie persone. Dit loop Ubuntu 18.04 en het vi/vim, gvim, emacs, gedit, geany en kate vooraf geïnstalleer. Jy kan programme in Python, Kotlin, Java of C++ skryf.
Wanneer 'n span 'n probleem oplos, stuur dit dit aan na die toetsbediener, wat die kode evalueer. Deelnemers weet nie watter toetse die masjien uitvoer nie. As almal suksesvol is, ontvang die span bonuspunte. Andersins word 'n fout gegenereer en studente word gestuur om die kode reg te stel.
Volgens ICPC-reëls wen die span wat die meeste probleme oplos. As daar verskeie sulke spanne is, word die wenner deur die kleinste straftyd bepaal. Deelnemers ontvang strafminute vir elke probleem wat opgelos is. Die aantal minute is gelyk aan die tyd vanaf die begin van die kompetisie tot die aanvaarding van die taak deur die toetsbediener. As die span 'n oplossing vind, ontvang hy nog twintig minute se straf vir elke verkeerde poging om dit te slaag.
icpcnews /flickr/ CC BY / Foto's van die ICPC-2016 finaal in Phuket
Voorbeeld probleme
Die doelwitte van die kampioenskap vereis spankoördinasie en konsentrasie. Daarbenewens toets hulle kennis van individuele wiskundige algoritmes. Hier is 'n voorbeeld van 'n taak wat aan ICPC 2018-deelnemers gebied is:
In tipografie is daar 'n term "rivier" - dit is 'n reeks spasies tussen woorde, wat uit verskeie reëls teks gevorm word. 'n Sekere rivierkenner wil (regtig) 'n boek publiseer. Hy wil hê dat die langste tipografiese riviere op die bladsy moet “vorm” wanneer dit in monospasiëring gedruk word. Deelnemers moes die wydte van die velde bepaal waarteen hierdie voorwaarde nagekom sou word.
By die invoer het die program 'n heelgetal n (2 ≤ n ≤ 2 500) ontvang, wat die aantal woorde in die teks bepaal. Vervolgens is die teks ingevoer: woorde op een reël is deur een spasie geskei en kon nie uit meer as 80 karakters bestaan nie.
By die uitset moes die program die wydte van die velde waarteen die langste "rivier" gevorm word, en die lengte van hierdie rivier wys.