Český tým na světovém finále ICPC: měli jsme na stříbro

23. 5. 2012
Doba čtení: 9 minut

Sdílet

Letošního velkého finále ICPC ve Varšavě se po osmi letech zúčastnil také český tým. Tři mladíci z Karlovy univerzity se v těžké konkurenci probojovali až na 45. místo. Měl jsem možnost je i s jejich trenérem po finále vyzpovídat. Jakou měli strategii? Jak trénovali? A jsou se svým umístěním spokojení?

Za Českou republiku se do letošního finálového kola světové soutěže ICPC 2012 probojoval tým z Karlovy univerzity. Konkrétně jej tvořili Michal Danilák, Filip Hlásek, Jakub Zíka a jejich „kouč“ Pavel Töpfer. Na závěrečné party jsem se celou skupinku snažil najít, což mezi tisícovkou lidí nebyla vůbec legrace. Nakonec se to ale povedlo a měl jsem možnost se jich zeptat na spoustu zajímavých věcí. Tady je celý rozhovor.

Nezapomeňte si přečíst reportáž z finále soutěže ve Varšavě a určitě si prohlédněte rozsáhlou fotogalerii.

Jste z Karlovy univerzity z Matematicko-fyzikální fakulty. Z jakého ročníku?

JZ: My dva s Filipem jsme v prváku, Michal je v páťáku.

To je docela velký rozptyl. Není to handicap být v prváku, když kolega je v páťáku?

JZ: On víceméně sháněl někoho, s kým bude dělat soutěž.

To zní, jako bys vzal „nějaké prváky“ jen proto, že nikdo jiný nebyl.

MD: No, jsou nejlepší z republiky, takže to asi nejsou „nějací prváci“. Nešel bych do toho s někým neschopným. To, co jsme tu dneska dokázali, je to nejlepší za posledních pět let, takže jsem moc rád, že jsem s nimi v týmu. Myslím, že jejich věk není rozhodně handicapem.

Spousta lidí v prváku teprve hledá, co vlastně chce, a vy už to umíte. Jakou jste měli průpravu?

FH: Máme za sebou spoustu středoškolských soutěží, mezinárodní olympiádu v informatice, online soutěže. Takže to pro nás nebyl šok, jen je to pro nás teprve druhá týmová soutěž. Předtím byly všechny individuální.

Michal Danilák, Filip Hlásek, Pavel Töpfer, Jakub Zíka

Proč se vlastně takových soutěží účastníte? Co vám to dává?

JZ: Baví nás řešit tenhle typ úloh. Taky je fajn se trochu zviditelnit a mít si co napsat do životopisu. Před pár týdny jsme byli na podobné soutěži v Budapešti a tam jsme posílali své životopisy a už nám přišly nějaké nabídky od zaměstnavatelů.

FH: Má to spoustu důvodů: Poznáme nové krajiny, získáme ceny, zviditelníme univerzitu i sami sebe a poznáme spoustu zajímavých lidí.

Proč vy se účastníte jako „kouč“?

PT: Já už na takové soutěže jezdím hromadu let. Středoškolskou olympiádu v informatice, což je v Česku kategorie P Matematické olympiády, jsem v roce 1985 zakládal a od té doby ji organizuji a řídím. Od té doby se také účastníme mezinárodních olympiád, takže na ně jezdím jako vedoucí. Takže když se objevila možnost jezdit na vysokoškolské soutěže, tak jsem považoval za samozřejmé, že to bude na fakultě můj úkol.

A váš osobní důvod?

PT: Především mě to baví a baví to i ty studenty. Takže jim takhle můžu pomoct se účastnit.

Co přesně jste jako trenér dělal?

PT: Pravidla vyžadují, aby na finále přijel s týmem i „kouč“, i když během soutěže už nemůže nijak do průběhu zasahovat. Teoreticky bych mohl svůj tým připravovat předem doma ještě před soutěží, ale tito kluci ode mě žádnou takovou pomoc nechtěli a nepotřebovali, na soutěž trénovali sami. Moje role tedy spočívala pouze ve vyřizování různých formalit spojených s cestou na soutěž. Na skutečných výsledcích v soutěži já nemám vlastně vůbec žádnou přímou zásluhu. Snad jen úplně maličkou nepřímou tím, že všichni tito kluci prošli jako středoškoláci různými jinými soutěžemi a korespondenčními semináři, z nichž mnohé já připravuji, organizuji a dokonce i řídím.

Jak je to podle vás s úrovní studentů? Spousta vyučujících tvrdí, že se s časem podstatně zhoršuje. Vnímáte to taky tak?

PT: Špička, ti nejlepší, ti zůstávají pořád. Byli vždycky a budou. Třeba tady kluci už soutěžili na střední škole a nikdo je k tomu nemusel nutit. Ale průměrná úroveň se skutečně zhoršuje. Je rok od roku těžší přinutit studenty k nějaké práci.

Český tým ve finále

Je běžné, že se takových soutěží účastní i takto mladí lidé jako Filip s Jakubem?

PT: Kluci se dostali do finále v prváku, to se nám v minulosti ještě nikdy nestalo. Průměr bývá spíše kolem třetího ročníku. Protože to už se na fakultě trochu otrkají, něco se naučí a to je pak ideální doba, kdy postupují.

Je pravda, že ve finále nebyl nikdo z Čechů už osm let?

PT: Ano, to je pravda. Od finále v Praze v roce 2004 se žádný český tým nekvalifikoval. Předtím bylo období, kdy jsme jezdili skoro každý rok a pak přišel osmiletý výpadek.

A čím to podle vás bylo?

PT: Vždycky je otázka, jací se sejdou studenti, jak jsou dobří, jak jim to vyjde. My jsme vždycky končili v regionálním kole dobře, většinou kolem pátého místa. Ale když postupují jen první dva nebo tři, tak to bylo krátce pod čarou.

FH: Máme taky poměrně těžký region. Z každého regionu postupují jen dva až tři týmy a s námi jsou v regionu Poláci, kteří jsou tradičně nejlepší.

MD: Slované jsou nejlepší programátoři. Poláci, Rusové, Bělorusové.

Čím to je, že je náš region na vývojáře tak bohatý?

PT: On je hlavně bohatý na Poláky (smích). Kdybychom vynechali Polsko, tak je náš region srovnatelný s ostatními. Ale Poláci jsou o kus dál než ostatní. Hodně trénují, mají na to hodně peněz.

FH: Lidé to v Polsku dokáží víc ocenit, je tam kolem toho ohromná komunita a tradice.

MD: A je to u nich prestiž, jsou na sportovní programování hrdí. U nás je to ještě dost neznámá záležitost.

FH: Třeba v regionu Západní Evropa je Anglie, Německo a Francie a je tam mnohem jednodušší postoupit. Slováci třeba v našem regionu nepostupují, ale několikrát se stalo, že když studovali na Oxfordu nebo Cambridge, tak se jim podařilo postoupit.

PT: Máme těžký region. Ale nebylo to tak od začátku. Na přelomu tisíciletí ještě Poláci nebyli tak trénovaní, takže se nám postupy dařily. Ale zhruba od roku 2004 začali intenzivně pracovat a my jsme zůstávali na tom pátém místě, protože před námi byla Varšava, Krakov, Wroclaw.

Co musí člověk umět, aby se takových soutěží mohl zúčastnit?

JZ: Analytické myšlení, znalost algoritmů, schopnost rozebrat problém a umět najít správný fígl vedoucí k řešení.

MD: Zápal. Chce to hodně času, jako mnoho jiných věcí. Bojujeme tu na světové úrovní, ti nejlepší trénují desítky hodin týdně.

PT: Chce to mít i talent. Úplně z nuly by to nenatrénovali, kdyby k tomu neměli nadání.

MD: Nevěřím na nadání. Vidím, co dělají ti nejlepší a nikdo z nich se nefláká.

FH: Tady na finále má nějaké to nadání asi každý, ale o vítězství rozhoduje to, kdo víc trénuje, kdo má lepší trenéry a podobně.

A co je na tomto typu soutěží nejtěžší?

JZ: Mysleli jsme si, že nejtěžší bude vymyslet samotný algoritmus potřebný k řešení problému. Dneska nás překvapilo, že jsme algoritmus vymyšlený měli, ale nedokázali jsme implementaci dotáhnout do konce a odladit všechny chyby.

MD: Fáze vymýšlení algoritmu byla bezchybná, zradila nás implementace.

Slyšel jsem tu, že Číňané nebo Rusové se na soutěž velmi intenzivně připravují. Trénovali jste nějak i vy?

FH: Začali jsme trénovat až po tom středoevropském kole, kdy už bylo jisté, že pojedeme do finále. Trénovali jsme jednou týdně pět hodin a vždycky jsme vyřešili několik úloh. Rozhodně to ale nebylo tak intenzivní jako u Rusů nebo Číňanů.

Měli jste předem připravenou nějakou strategii? Kdo se bude zabývat čím, jak si rozdělíte počítač?

JZ: Máme připravenou strategii, já se na začátku starám o přípravu počítače, zatímco Michal a Filip si rozdělí úlohy a každou alespoň jeden z nich přečte. Já se přihlásím, zapnu editor, terminál a systém na odevzdávání úloh, napíšu náš „vzorový program“, který obsahuje nějaké includy a makra, která nám potom zrychlují práci.

FH: Strategii jsme měli už dopředu rozmyšlenou a trénovali jsme ji taky na každém tréningu. Na začátku soutěže je potřeba prohrabat všechny úlohy a vybrat z nich tu nejjednodušší, na které někdo začne pracovat. Ze začátku jsme vždy řešili jednodušší úlohy, na kterých nebylo potřeba moc spolupracovat, takže si vždy dva připravovali tu svoji úlohu a jeden programoval. Když jsme se dostali k obtížnějším úlohám nebo nezbývalo moc času, tak jsme už většinou řešili pouze jednu nebo dvě úlohy a spolupracovali na nich. Volba úkolů, které budeme řešit, nebyla vůbec snadná. Pokud nás k nějaké napadlo řešení hned po přečtení zadání, tak jsme se do ní pustili a jinak jsme sledovali průběžnou výsledkovou listinu a řešili jsme ty úlohy, které vyřešilo nejvíce týmů.

JZ: Dohodli jsme se, že je nejvýhodnější řešit od nejjednodušší úlohy, protože v případě stejného počtu vyřešených úloh se počítají součty času vyřešení úloh od začátku soutěže. Takže je lepší vyřešit více úloh na začátku. Možná by se vyplatilo toto pořadí změnit, kdybychom útočili na balónky za první vyřešení úlohy, ale my jsme se rozhodli spíše preferovat umístění ve výsledkové tabulce.

MD: Člověk u počítače by měl trávit sto procent času psaním kódu a neměl by už přemýšlet nad řešením. Proto se při přípravě snažíme vše promyslet do posledních detailů, ošetřit všechny okrajové případy a případně si napsat komplikované části kódu už na papír. Když došlo na debugging, tak se zdrojový kód vytiskl a čte se na papíře. Mezi tím už další člověk píše jinou úlohu.

Konkurence byla hojná a silná

Máte pocit, že tahle strategie byla správně zvolená?

FH: Myslím, že naše strategie byla správná a mnohokrát se nám během tréningu osvědčila, ale bohužel se nám nepovedlo doladit již v podstatě vyřešené problémy.

JZ: Myslím si, že náš postup byl více méně správný, jediné, co jsme mohli udělat lépe, bylo více komunikovat. Pak bychom možná vyřešili o úlohu víc. Že jsme měli chyby v programu, se zkrátka občas stává a nejsem si jist, jak moc by nám pomohlo například více trénovat.

MD: Strategie byla samozřejmě správná, já osobně bych ji neměnil.

Skončili jste na 45. místě, považujete to za úspěch?

JZ: Myslím si, že to mohlo být samozřejmě lepší. Měli jsme docela smůlu při řešení, měli jsme dvě úlohy rozdělané, ale nedokázali jsme je dotáhnout do konce. Úspěšně jsme odevzdali čtyři, kdybychom jich udělali všech šest, bylo by to daleko lepší.

FH: Pro mě to bylo zklamání. Když jsme zkoušeli na tréninzích úlohy z předchozích let, většinou jsme byli výrazně úspěšnější a dařilo se nám zvládnout šest až sedm úloh. Takže tady nás to spíš zklamalo.

MD: Měli jsme na medaili, rozhodně.

Jaké umístění jste si při příjezdu představovali?

MD: Máme určitě na stříbro. Ale to se stává.

A co bylo tedy špatně?

MD: Všechno (smích). Nesedly nám úlohy, nesedl den. Stává se to.

FH: Rozhodně je úžasný úspěch, že jsme se sem vůbec dostali. Neměli jsme co ztratit, takže jsme to alespoň zkusili. Snad jsme neudělali škole ostudu.

Můžou jet stejní studenti na soutěž znovu?

PT: Ano, příští rok bude další kolo. Nejdřív je třeba projít národní soutěží a pak středoevropským kolem. Pokud se dostanou do finále, mohou se znovu zúčastnit.

Máte v plánu to zkusit? Samozřejmě asi kromě Michala.

MD: Já už jsem dofinišoval (smích).

JZ: Budeme se snažit sehnat nového spoluhráče a zkusíme to příští rok.

FH: Samozřejmě, já se na to už moc těším a doufám, že najdeme za Michala vhodnou náhradu.

Co se dá dělat pro to, abyste příště dopadli lépe?

FH: Asi víc trénovat, to je všechno.

JZ: Zkoušet si jiné úlohy a osvojovat si nové postupy.

Budete mít možnost přesně zjistit, co jste dělali špatně?

JZ: Ano, říkali, že všechny naše programy i testovací vstupy nahrají na web.

Máte v plánu si to pak stáhnout a zjistit, co bylo špatně?

bitcoin_skoleni

MD: Já už to nechci ani vidět (smích).

FH: Určitě to projdeme a poučíme se z toho pro příště.

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.