Pravidla soutěže PilsProg

Tento dokument obsahuje oficiální pravidla soutěže v programování PilsProg, jejímž garantem je katedra informatiky a výpočetní techniky fakulty aplikovaných věd Západočeské univerzity v Plzni (KIV FAV ZČU).

Soutěž je určena studentům středních škol. Organizátor může pravidla pro jednotlivé fáze a ročníky soutěže upravovat. Definitivní podoba pravidel je zveřejněna na webových stránkách soutěže nejpozději týden před začátkem kvalifikačního kola soutěže.

§1 Všeobecná ustanovení

PilsProg je soutěž v programování pro studenty středních škol.

Soutěž probíhá ve dvou kolech:

Pro obě kola soutěže platí totožná pravidla s jedinou výjimkou - viz §7.2 Hodnocení finálového kola.

Poruchy v provozu technických systémů (server, počítač) a to jak na straně soutěžícího, tak na straně garanta soutěže, nejsou důvodem k prodloužení termínu odevzdání úloh či jakéhokoliv "odpočítávání" času.

§2 Účastníci soutěže

Kvalifikačního kola se mohou zúčastnit jednotlivci - studenti středních škol. Soutěžící musí být ve školním roce, ve kterém se účastní soutěže, studentem střední školy. Účastník soutěže je povinen se zaregistrovat (viz dále) a tímto dává souhlas se zveřejněním svého jména a výsledku, kterého v soutěži dosáhl, na webových stránkach soutěže.

§3 Registrace

Soutěže se mohou zúčastnit jen zaregistrovaní účastníci, kteří splňují podmínky soutěže. Registrace (elektronickým systémem) je umožněna pouze v době uvedené v harmonogramu soutěže. Umožní vytvoření konta, o čemž je soutěžící vyrozuměn zasláním registračního e-mailu na vyplněnou adresu. Každý zaregistrovaný uživatel si může ještě před započetím soutěže zkusit vyřešit zadání ilustračních úloh. Prostudujte si také naše doporučení a často kladené dotazy, a to zejména v případě, že nebude odevzdané řešení libovolné z ilustračních úloh přijato jako správné.

§4 Průběh soutěže

Kvalifikační kolo bude probíhat prostřednictvím webových stránek soutěže. V termínu zahájení kvalifikačního kola podle harmonogramu soutěže bude zveřejněn daný počet úloh. Řešení úloh je možné odevzdat pouze do termínu ukončení kvalifikačního kola podle harmonogramu.

Finálového kola soutěže se zúčastní nejlepší jednotlivci. Soutěž bude probíhat na určeném místě (laboratoř KIV) a bude časově omezena s ohledem na počet řešených úloh.

Cílem obou kol soutěže bude vytvoření zdrojových kódů správných řešení co největšího počtu úloh a jejich odevzdání v co nejkratším čase prostřednictvím elektronického odevzdávacího systému. Jako řešení je možno odevzdat zdrojový soubor programu napsaný v programovacím jazyku C, C++, Java, nebo Pascal. Zdrojový soubor musí mít jednu z přípon .c, .cpp, .java, .pas odpovídající zvolenému programovacímu jazyku. Názvy zdrojových souborů volte v souladu se syntaktickými pravidly zvoleného programovacího jazyka, není nutno použít název souboru shodný s názvem úlohy, kterou chcete odevzdat. Závazné jsou pouze přípony souborů. Ve zdrojových souborech (ani v jejich názvech či v komentářích) není dovoleno používání diakritiky. Program nesmí být závislý na přítomnosti žádného externího souboru a ani nesmí žádný takový soubor vytvářet. Vstup je načten ze standardního vstupu (klávesnice) a výstup se vypisuje na standardní výstup (obrazovka). Každé řešení může být napsané v libovolném z uvedených programovacích jazyků bez ohledu na předešlá odevzdaná řešení.

Odevzdané programy se v systému automaticky přeloží, spustí a otestuje se správná funkčnost. Každé odeslané řešení je potom buď přijato jako vyhovující, a nebo je odmítnuto. Nebude-li řešení přijato, je možné odevzdat další řešení. Odmítnutá odevzdání jsou evidována a pouze ve finálovém kole penalizována (viz §7 Hodnocení soutěže). Celou tuto činnost automaticky bez zásahu člověka (ale za dozoru rozhodčích) vykoná a výsledek testování odevzdaného řešení bude soutěžícím prezentovat elektronický systém na webové stránce. Seznam všech zpráv systému a způsob hodnocení je uveden v §6 Validační zprávy.

Na průběh soutěže a automatické vyhodnocování řešení dohlížejí rozhodčí. Rozhodčími jsou většinou členové akademické obce FAV ZČU. Rozhodčí mají konečnou pravomoc rozhodovat, zda-li jsou uvedená řešení správná či nikoliv. Proti verdiktu rozhodčích není odvolání.

V případě problémů s porozuměním zadání se mohou soutěžící zeptat rozhodčích prostřednictvím elektronické pošty. Pokud rozhodčí uznají, že zadání je skutečně nejasné, budou o tom informovat všechny soutěžící.

Výsledky odevzdávání soutěžícího budou zveřejňované na webové stránce soutěže PilsProg v průběhu daného kola soutěže. Po ukončení příslušného soutěžního kola budou zveřejněny celkové výsledky tohoto kola.

Soutěžící mohou používat libovolnou dostupnou literaturu (ve finálovém kole pouze knihy).

§5 Programovací jazyky (použité verze překladačů)

Soutěžící smí používat funkce poskytované jednotlivými programovacími jazyky. Není však povoleno:

Překladače jazyků C, C++, Java a Pascal jsou na validačním serveru nainstalovány v těchto verzích a se standardními knihovnami:

Pro psaní programů v kvalifikačním kole můžete použít vývojové prostředí dle vlastní preference. Během finálového kola budou k dispozici výše zmíněné překladače a následující vývojová prostředí:

§6 Validační zprávy

Výsledek testování odevzdaného řešení má podobu právě jedné zprávy následující tabulky:

ZprávaVýznam
Chyba při kompilaciPřeklad zaslaného zdrojového kódu skončil chybou.
Správné řešeníProgram byl uznán jako správný a daná úloha byla úspěšně vyřešena.
Chybné řešeníProgram byl spuštěn, skončil buď předčasně chybou při výpočtu nebo vydal nějaké výsledky, ale tyto výsledky nejsou správné.
Překročení časového limituProgram byl úspěšně přeložen a spuštěn, ale neskončil během požadovaného časového limitu. Buď se v něm vyskytla nekonečná smyčka, nebo byl použit málo efektivní algoritmus.

Pouze zpráva Správné řešení znamená, že bylo řešení přijato jako vyhovující. Všechny ostatní zprávy znamenají odmítnutí řešení. Pokud je řešení již přijato, není možno stejnou úlohu znovu odevzdat.

§7 Hodnocení soutěže

Pro každou úlohu, která bude uznána jako správná (tj. Správné řešení), se počítá čas v hodinách od zahájení kola soutěže až do okamžiku, kdy byla úspěšně odevzdána. Rovněž se evidují všechna (předcházející) nesprávná odevzdání řešení úlohy.

§7.1 Hodnocení kvalifikačního kola

Prvním kritériem, podle kterého jsou soutěžící hodnoceni, je počet odevzdaných správných řešení. To znamená, že ve výsledném žebříčku jsou soutěžící seřazeni podle počtu vyřešených úloh (čím víc vyřešených úloh, tím lepší umístění).

V případě, že více soutěžících vyřeší stejný počet úloh, jsou tito seřazeni podle druhého kritéria, kterým je součet časů potřebných ke správnému vyřešení jednotlivých odevzdaných úloh (čím menší součet časů, tím lepší umístění). Za problémy, které nebyly vyřešeny, se neprovádí žádná penalizace.

§7.2 Hodnocení finálového kola

Hodnocení finálového kola se provádí podle kriterií hodnocení kvalifikačního kola, navíc se však za každé odmítnuté odevzdání připočítává penalizace 10 minut do celkového času řešení této úlohy.

Vítězi soutěže PilsProg jsou první tři úspěšní řešitelé finále. Úspěšný řešitel je každý účastník finále, který vyřeší alespoň dvě úlohy.

§8 Fair play

Soutěžící se registrací zavazují dodržovat pravidla soutěže. Dále prohlašují, že všechna jejich odevzdaná řešení jsou jejich vlastní, které sami vytvořili a nepoužili řešení (i jejich části), které místo nich vytvořil někdo jiný. Též se zavazují, že nebudou s vypracováním řešení pomáhat jiným soutěžícím.

V případě zjištění jakéhokoliv porušení pravidel bude soutěžící diskvalifikován.