I dag Finalen i den internationale programmeringskonkurrence ICPC 2019 afholdes i den portugisiske by Porto.Repræsentanter for ITMO University og andre hold fra universiteter i Rusland, Kina, Indien, USA og andre lande vil deltage i den. Lad os fortælle dig mere detaljeret.
icpcnews /flickr/ CC BY / Billeder fra ICPC-2016 finalen i Phuket
Hvad er ICPC
ICPC er en international programmeringskonkurrence blandt studerende. De har været afholdt i over 40 år - den første finale bestået tilbage i 1977. Udvælgelsen udføres i flere faser. Universiteterne er opdelt efter region (Europa, Asien, Afrika, Amerika osv.). Hver af dem er vært for mellemtrin, især de nordlige eurasiske semifinaler fandt sted på vores universitet. Vinderne af de regionale etaper deltager i finalen.
Hos ICPC bliver hold på tre deltagere bedt om at løse en række problemer ved hjælp af én computer (ikke forbundet til internettet). Ud over programmeringsevner testes således også teamwork-færdigheder.
Under konkurrencen, hold modtager én computer for tre personer. Den kører Ubuntu 18.04 og har vi/vim, gvim, emacs, gedit, geany og kate forudinstalleret. Du kan skrive programmer i Python, Kotlin, Java eller C++.
Når et team løser et problem, sender det det videre til testserveren, som evaluerer koden. Deltagerne ved ikke, hvilke tests maskinen udfører. Hvis alle lykkes, modtager holdet bonuspoint. Ellers genereres en fejl, og eleverne sendes for at rette koden.
Ifølge ICPC-reglerne vinder det hold, der løser flest problemer. Hvis der er flere sådanne hold, så afgøres vinderen af den mindste straftid. Deltagerne modtager strafminutter for hvert løst problem. Antallet af minutter er lig med tiden fra konkurrencestart til testserverens accept af opgaven. Hvis holdet finder en løsning, får det yderligere tyve minutters straf for hvert forkert forsøg på at passere den.
icpcnews /flickr/ CC BY / Billeder fra ICPC-2016 finalen i Phuket
Prøveproblemer
Målene for mesterskabet kræver holdkoordination og koncentration. Derudover tester de viden om individuelle matematiske algoritmer. Her er et eksempel på en opgave, der blev tilbudt ICPC 2018-deltagere:
I typografi er der et udtryk "flod" - dette er en sekvens af mellemrum mellem ord, som er dannet af flere tekstlinjer. En bestemt flodekspert vil (for alvor) udgive en bog. Han ønsker, at de længste typografiske floder skal "formes" på siden, når der udskrives i monospace skrift. Deltagerne skulle bestemme bredden af felterne, hvor denne betingelse ville være opfyldt.
Ved indgangen modtog programmet et heltal n (2 ≤ n ≤ 2), som bestemmer antallet af ord i teksten. Dernæst blev teksten indtastet: ord på en linje var adskilt af et mellemrum og kunne ikke bestå af mere end 500 tegn.
Ved udgangen skulle programmet vise bredden af de felter, hvor den længste "flod" dannes, og længden af denne flod.