ACM aneb progtest revisited

O ACM už jsem slyšel předtím. Všude po škole jsou vylepeny letáky na ACM SPY (soutěž o nejlepší studentský IT diplomový projekt), ale o ICPC (International Collegiate Programming Contest) jsem slyšel poprvé až na prvním cvičení BI-EFA (Efektivní algoritmy), kde pan inženýr Chludil lákal na bonusové, ale těžce získané body – dva body za každou vyřešenou soutěžní úlohu na regionální úrovni, tedy na klání českých a slovenských vysokých škol CTU Open.

Samozřejmě, že mě představa bodů navíc lákala (koho taky ne), ale samotná soutěž pro mě začala být čím dál tím větší výzvou. Progtestové úlohy mě vždy bavily, i když jsem si nad nimi vytrhal nejeden vlas, a tak už chybělo jenom jediné – tým.

I když jsem sám ještě byl na vážkách, zeptal jsem se své kamarádky Lucky, jestli by do toho nešla se mnou. Překvapivě bez váhání odpověděla že ano, a tak nám zbýval jenom poslední člen, aby náš tým byl kompletní. A oba jsme věděli, za kým jít.

Kryštof vždy byl na progtestovém žebříčku TOP programátorů kdesi nahoře, a tak naše kroky mířily za ním. Po krátkém, ale účinném nátlaku Kryštof nemá jinou možnost, než sednout za počítač a projít až příliš zdlouhavou registrací na webových stránkách soutěže.

Pak už nám zbývá jen vymyslet chytlavé jméno pro náš tým. Padají takové návrhy jako New Hope, Judgement Day, Two Towers nebo X-Men: First Public Class, ale i více programátorské jako #include <vector>, Segfault či Codementi. Po zdlouhavém hlasování a mnoha zamítnutých návrzích zadáváme do systému něco, na čem se můžeme shodnout všichni. Magické zaklínadlo „g++ -Wall -pedantic“.

CTU Open vypuká až v pátek 17.10. v odpoledních hodinách, kdy v budově FELu na Karlově náměstí začíná slavnostní zaháje

ní. Bohužel hned po chvíli lituji, že jsem vůbec přišel. Schopnost organizátorů jak organizovat, tak mluvit není úplně nejlepší a část mne umírá při každé druhé větě, a to nejsem žádný grammar nazi.

Foto z ACM

Po úmorných dvou a půl hodinách představování všech možných hostů, sponzorů a hlavně progtest-like systému vyhodnocování úloh se konečně dostáváme k hlavnímu bodu dne – zkušebnímu kolu celé soutěže. Cestou si ale pokládáme zásadní otázku: Jak je to s tím občerstvením?

Než si na ni ale stíháme odpovědět, zkušební kolo začíná a my si pročítáme zadání čtyř zkušebních úloh, ale nevíme, kterou začít. Všechny jsou pro většinu účastníků až urážlivě lehké: výpočet faktoriálu, výpis věty reverzně, či dokonce prostý součet dvou čísel! Asi po hodině máme všechny úlohy hotové (zdržel nás pomalý systém či nefunkční příkaz compile, takže jsme museli kompilovat názvem našeho týmu), a tak můžeme pro dnešek jít domů. Pocit, že opravdová soutěž bude o něco těžší, se nám ovšem potvrdí hned další den.

Když se ráno scházíme se svým týmem po noci, kdy se nám všem zdálo plno snů o tom, jak projedeme celou soutěž, nešťastně jdeme opět do přednáškového sálu FELu, kde čekáme stejnou hrůzu jako včera, ale mýlíme se. Je to ještě horší.

Ta zvěrstva, co se předchozí den děla v češtině, se dnes dějí v angličtině, ale pod stůl padám až po větě: „There is lot of koláčes.“ Nejdřív jsem si myslel, že si organizátor dělá srandu, ale když ten paskvil zopakoval ještě několikrát, bylo mi do breku.

Následovalo dlouhé povídání o tom, proč včera nefungovalo to, co mělo, následované sliby, že dnes bude fungovat i to, co nemělo. Samozřejmě příkaz compile na začátku opět nefunguje, nemluvě o tom, že na začátku nefunguje ani náš počítač. Když ale překonáme prvotní nesnáze, začínáme si pročítat zadání soutěžních deseti úloh. Tam přestává všechna sranda.

Úlohy jsou všechny docela obtížné a podobají se těžším úkolům z PA2. Ovšem místo jedné úlohy na šestnáct dní zde je deset úloh na pět hodin, a tak musíme zabrat, abychom stihli alespoň něco.

Zdárně odevzdáváme dvě úlohy, ale při třetí, čtvrté a páté, kde nám základní vstupy fungují, máme buď pro ostatní vstupy pomalý program nebo špatné výstupy. Bohužel jsou základní vstupy ke každému úkolu jenom dva, a tak se program velmi špatně ladí.

Foto z ACM

A tak přes všechny pokusy po pěti hodinách máme odevzdané jenom dvě úlohy, ostatní těsně před správným vyřešením, což nás mrzí o to víc, ale nedá se nic dělat. Výsledné 47. místo z cca 90 týmů není zas tak hrozné.

Jak jinak, CTU Open kralovaly týmy z Matfyzu, které obsadily první dvě místa, následované týmem z brněnské Masarykovy univerzity, čímž výhercům gratuluji a přeji jim hodně štěstí v dalším kole, které se koná v Polsku.

I když má náš tým do postupu velmi daleko, tak nás více mrzí fakt, že jsme u několika úloh byli opravdu blízko. Proto se už psychicky připravujeme na příští ročník, který si rozhodně nenecháme ujít. I když organizace celé soutěže trochu pokulhávala, adrenalin z řešení úloh vše přebil. A o co jiného v životě jde, než si dobře zaprogramovat.

Foto: Organizátoři akce

Tomáš Nováček

Jsem ve svém živlu, když můžu být vždy a všude, nejlépe na nějaké vedoucí pozici, protože rád zadávám úkoly a hlavně se rád poslouchám. Proto jsem se kromě šéfredaktorování Buď FIT stal také vedoucím fakultního Seznamováku, organizátorem 111. narozenin, či zakladatelem FIT++. Kontaktovat mě můžete na novacto3@fit.cvut.cz.