ISO-8859-2 Windows 1250 IBM CP 852 Macintosh EE Ascii 7-bit vybrat kódování English Version English Version

ACM Programming Contest
kódování češtiny

Pravidla soutěže

Toto jsou oficiální pravidla všech kol soutěže v programování International Collegiate Programming Contest, která jsou pořádána na Katedře počítačů FEL ČVUT v roce 1999. Jedná se o přípravnou verzi pravidel, s defitivní podobou budou soutěžící seznámeni vždy těsně před příslušným kolem soutěže.

Tato pravidla jsou pouze minimálně odlišná od všeobecných pravidel pro Contest ( International Collegiate Programming Contest Rules). Při jejich tvorbě byla jako vzor částečně použita také pravidla jihozápadoevropského regionu (SWERC Rules).

Všeobecná ustanovení

The International Collegiate Programming Contest dává vysokoškolským studentům příležitost dokázat a zlepšit jejich znalosti a především schopnost tvořit algoritmy.

Contest je pořádán ve dvou kolech. Nejprve se týmy účastní regionálních kol, která probíhají obvykle v říjnu a v listopadu. Vítězové regionálních kol postupují do finále soutěže (International Collegiate Programming Contest World Finals) konaného přibližně v březnu dalšího roku. Postup může být kromě vítězů přidělen i několika dalším týmům podle pořadí jejich umístění.

Všechny týmy z vysokých škol na území České republiky by se měly nejprve zúčastnit lokálního českého kola (CTU Open Contest). Nejlepší týmy z tohoto kola pak získají právo postupu do samotného kola regionálního. Další informace o tomto kole můžete najít také na stránce s FAQ (anglicky).

Veškerá pravidla a průběh soutěže stanovuje tzv. Regional Contest Steering Committee, které předsedá Regional Contest Director. Ředitel regionu má právo samostatně rozhodovat o správném výkladu pravidel a stanovovat pravidla při výskytu neočekávaných situací.

Složení týmu

Každý tým se skládá z jednoho až tří soutěžících. Každý soutěžící musí být studentem řádného studia s alespoň polovičním počtem hodin.

Maximálně jeden z členů smí být graduovaný (mít dokončenou vysokou školu). Žádný ze soutěžících nesmí absolvovat dva roky postgraduálních studií ani mít taková studia dokončena (nesmí vlastnit doktorský titul). Studenti, kteří dvakrát soutěžili ve světovém finále, se nesmějí nadále účastnit soutěže. Stránka s FAQ obsahuje několik dalších upřesňujících údajů ohledně způsobilosti soutěžících (anglicky).

Způsobilost soutěžit se stanovuje vzhledem k semestru, který končí nejdříve po dni konání regionálního kola. Zkoušky, promoce a jiné způsoby udělování titulů jsou brány jako události vyskytující se po skončení příslušného semestru, nikoli v jeho průběhu. Na jakékoli nejasnosti týkající se složení týmu je možné se zeptat ředitelky regionálního kola. Její rozhodnutí je konečné.

Každý tým může mít náhradníka, což je člen, který může nahradit jiného člena v případě, že někdo nechce nebo se nemůže účastnit soutěže. Výsledný tým po výměně musí být utvořen podle všech pravidel.

Pro tým by měl existovat tzv. Coach, což je jeho zástupce a kontaktní osoba před soutěží (e-mail, fax, písemné materiály) i během ní (ústní konverzace). Může to být teoreticky jakákoli osoba, dokonce i některý ze soutěžících. V každém případě však musí existovat zástupce dané univerzity (většinou vyučující), který musí potvrdit způsobilost soutěžících. Je doporučeno, aby tento zástupce univerzity sloužil jako Coach.
[TÝKÁ SE AŽ REGIONÁLNÍHO KOLA]

Týmu není dovoleno soutěžit, dokud ředitel kola neobdrží všechny dokumenty, které potvrzují způsobilost soutěžících.
[TÝKÁ SE AŽ REGIONÁLNÍHO KOLA]

Studenti i univerzity se v daném roce smějí účastnit pouze jediného regionálního kola. Maximálně jeden tým z každé univerzity smí postoupit do světového finále.
[TÝKÁ SE AŽ REGIONÁLNÍHO KOLA]

Univerzita smí do regionálního kola vyslat jeden nebo dva týmy. Protože celkový počet soutěžících je omezený, bude právo soutěžit přidělováno podle pořadí přihlášek. Je možné, že některým požadavkům na účast druhých týmů nebude vyhověno. Ředitelka regionálního kola je osobně zodpovědná za přijímaní či zamítaní přihlášek. Její rozhodnutí jsou konečná.
[TÝKÁ SE AŽ REGIONÁLNÍHO KOLA]

Hodnocení soutěžících

Soutěžícím bude předloženo šest až deset příkladů, na které dostanou celkem pět hodin času. V maximální možné míře budou příklady takové, aby nezáleželo na konkrétních znalostech jednotlivých aplikačních oblastí, ani na detailních znalostech programovacího jazyka.

Každý tým bude mít k dispozici jeden počítač. Všechny týmy dostanou přibližně rovnocenné výpočetní prostředky. Soutěžící budou mít přístup k překladačům tří programovacích jazyků: Pascal, C a C++. Každé řešení může být v libovolném jazyce, bez ohledu na jazyk použitý při předchozích řešeních.

Za řešení je považován pouze samostatný program, který nesmí záviset na přítomnosti externích datových souborů, ani nesmí žádné takové soubory vytvářet.

Jestliže tým vytvoří program, o kterém se domnívá, že je správný, odešle jej rozhodčím na posouzení. Každý takový pokus je buď přijat jako vyhovující nebo je odmítnut. Týmu je zasláno vyrozumění o výsledku pokusu. Toto vyrozumění má vždy podobu právě jedné z následujících zpráv:
Zpráva Význam
Compile Error Nepodařilo se přeložit zaslaný zdrojový kód.
Run-time Error Program byl úspěšně přeložen, ale během výpočtu se zhroutil (například kvůli dělení nulou nebo špatnému přístupu do paměti).
Time Limit Exceeded Program 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.
Wrong Answer Program byl spuštěn, skončil a vydal nějaké výsledky, ale tyto výsledky nejsou správné.
Presentation Error Program doběhl a vypsal nějaké výsledky, které se zdají být v pořádku. Nicméně jejich tvar není přesně takový, jaký byl požadován v zadání. Často se jedná o překlep, vynechanou mezeru a podobně.
Accepted Program byl uznán za správný a daný příklad byl úspěšně vyřešen.
Invalid Library Call Soutěžící se pokusili použít některou z nepovolených funkcí programovacího jazyka.
Contest Rules Violation Tato odpověď je použita, pokud je rozhodčími zjištěno nějaké jiné porušení pravidel nebo nesplnění zadání.

Během soutěže je zveřejňováno průběžné pořadí týmů. Soutěžící mají přístup k tomuto pořadí a mohou tak sledovat, které úlohy odevzdali jejich soupeři. Průběžná výsledková listina přestane být v určitý čas zveřejňována (většinou hodinu před koncem soutěže), aby konečné výsledky zůstaly v tajnosti až do slavnostního vyhlášení vítězů.

Pokud mají soutěžící problém s porozuměním zadání nebo se systémem, mohou se zeptat organizátorů. Pokud rozhodčí uznají, že nejasnost v zadání skutečně existuje, budou o ní informovány všechny týmy.

Rozhodčí mají konečnou pravomoc rozhodovat, jestli jsou odevzdaná řešení správná nebo nikoli. Proti jejich rozhodnutí není odvolání. Po konzultaci s rozhodčími vyhlásí ředitelka soutěže její vítěze. Rozhodčí a ředitelka jsou oprávněni provést libovolné úpravy (v pořadí, v časech odevzdání apod.) v případě výskytu nepředvídaných událostí. Tyto úpravy mohou být provedeny během soutěže, ale i po ní, a to až do doby 72 hodin po skončení. Po této lhůtě jsou výsledky definitivní a není již možné je změnit za žádných okolností.

Týmy jsou hodnoceny podle počtu odevzdaných správných řešení. Týmy, které vyřeší stejný počet úloh, jsou řazeny podle dosaženého celkového času. Celkový čas je součtem časů spotřebovaných na řešení všech správně vyřešených úloh. Čas spotřebovaný na vyřešení úlohy je doba, která uběhla od začátku soutěže do doby, kdy bylo správné řešení odesláno k posouzení, plus 20 minut penalizace za každé nesprávné řešení, které předcházelo. Za problémy, které nebyly vyřešeny, se žádný čas nepočítá.

Řešení v Pascalu by měla vyhovovat normě ISO Level 1 Standard. Nejsou podporována žádná rozšíření standardního jazyka. Pokud tým použije nějaké nepodporované rozšíření, může se stát, že i jinak správný program bude odmítnut jako nevyhovující.

Řešení v C by měla vyhovovat normě ANSI standard X3.159-1989. Jedinými podporovanými rozšířeními jsou některé základní funkce ANSI knihovny. Pokud tým použije nějaké nepodporované rozšíření, může se stát, že i jinak správný program bude odmítnut jako nevyhovující.

Řešení v C++ by měla vyhovovat jazyku popsanému v knize Bjarne Stroustrupa "The C++ Programming Language, Second Edition". Jedinými podporovanými rozšířeními jsou některé základní funkce ANSI knihovny. Pokud tým použije nějaké nepodporované rozšíření, může se stát, že i jinak správný program bude odmítnut jako nevyhovující.

Průběh soutěže

Oficiálním jazykem soutěže je angličtina (v regionálním kole a ve světovém finále) nebo čeština (ve všech předchozích kolech konaných na FEL ČVUT). Veškeré psané texty a veškerá komunikace s organizátory během vlastní soutěže musí probíhat v příslušném jazyce. Organizátoři si vyhrazují právo zadat některé úlohy v angličtině i v těch kolech, ve kterých je oficiálním jazykem čeština. Soutěžící si mohou přinést slovníky v knižní podobě. Elektronické slovníky a překladače mohou být použity pouze v případě, že neobsahují kalkulačku, diář ani jiné zařízení umožňující výpočty nebo produkci textů v elektronické podobě.

Během vlastní soutěže nesmějí soutěžící komunikovat s nikým jiným než se členy svého vlastního týmu a případně s organizátory. Ti mohou soutěžícím poradit především s ovládáním systému a podobně.

Soutěž bude probíhat s využitím počítačové sítě. Tato síť smí být využívána pouze k účelům odevzdávání úloh a k tisknutní textových souborů, a to pouze tím způsobem, který stanoví organizátoři. Vzdálené přihlašování, telnet, ftp, mail nebo jiné síťové aktivity jsou během soutěže přísně zakázány, a to jak mezi počítači určenými k soutěži, tak i s počítači umístěnými mimo lokální síť. Všechny podobné aktivity budou monitorovány a povedou k okamžité diskvalifikaci týmu. Pokud soutěžící zjistí nedostatek v bezpečnosti systému, je povinnen o něm informovat organizátory, a to bez zbytečných odkladů.

Soutěžící si mohou přinést a používat libovolnou literaturu, manuály nebo výpisy programů. Nesmějí vnášet do soutěžních místností žádné strojově čitelné záznamy programů nebo dat (například diskety). Nesmějí si přinést kalkulátor, vlastní počítač, terminál nebo jiný hardware. Soutěžící si nesmějí přinést žádné komunikační zařízení, jako jsou například radiopřijímače, mobilní telefony nebo pagery.

Všichni členové týmu jsou povinni navštěvovat všechny mimosoutěžní akce, případné přednášky a podobně. Nepřítomnost na některé z těchto akcí může vést k diskvalifikaci týmu.

Ačkoli vlastní soutěž má probíhat pět hodin, má ředitelka soutěže právo tuto délku jakýmkoli způsobem upravit v případě výskytu neočekávaných komplikací. Pokud bude délka soutěže změněna, bude učiněno vše pro to, aby se o tom všichni soutěžící dozvěděli stejným způsobem a najednou.

Tým může být diskvalifikován za jakoukoli činnost, která by narušovala klidný průběh soutěže - například přetěžování počítačového systému, nevhodné či hlasité chování v soutěžní místnosti a podobně. Diskvalifikace může být provedena kdykoli od zjištění takového chování až do doby 72 hodin po skončení soutěže.

Všechny týmy, které se chtějí zúčastnit, jsou povinny se zaregistrovat na místě k tomu určeném. Registrační místo a doba budou soutěžícím oznámeny s dostatečným předstihem.

Nejpozději při registraci musí být zaplaceny všechny vyžadované poplatky. Registrační poplatek nebude navrácen v případě, že tým nebude chtít nebo moci soutěžit.
[TÝKÁ SE AŽ REGIONÁLNÍHO KOLA]

Zdravotní a úrazové pojištění je starostí jednotlivých soutěžících a organizátoři ho žádným způsobem nezajišťují.
[TÝKÁ SE AŽ REGIONÁLNÍHO KOLA]

Coach týmu může podat stížnost pro porušení pravidel nebo pro špatné vedení soutěže, a to během sedmi dnů od skončení soutěže. Stížnost se podává tomu, kdo vykonává funkci Director of Regional Contests, na jeho doporučení může Contest Steering Committee při hlasování dvoutřetinovou většinou změnit rozhodnutí ředitelky regionu, ne však později než první pondělí v prosinci (v roce 1999 je to 6. prosince). Napravovat lze pouze chyby v samotném řízení soutěže a v porušení pravidel. Rozhodnutí rozhodčích týkající se správnosti odevzdaných řešení jsou definitivní a nelze je změnit.
[TÝKÁ SE AŽ REGIONÁLNÍHO KOLA]