Pre koho je súťaž určená?

  • Do kategórie B sa smú zapojiť len tí žiaci, ktorí ešte ani v tomto, ani v nasledujúcom školskom roku nebudú končiť strednú školu.
  • Do kategórie A sa môžu zapojiť všetci žiaci (základných aj) stredných škôl.

Kategória B má dve kolá: domáce a krajské. Kategória A má tri kolá: domáce, krajské a celoštátne. Najlepší riešitelia kategórie A majú šancu reprezentovať Slovensko na medzinárodných súťažiach.

 

Priebeh súťaže

Za každú úlohu domáceho kola sa dá získať od 0 do 10 bodov. Všetky úlohy je nutné odovzdať prostredníctvom webového rozhrania najneskôr v deň uvedený v zadaniach príslušnej kategórie.

Na základe bodov domáceho kola stanoví Slovenská komisia OI (SK OI) pre každú kategóriu bodovú hranicu potrebnú na postup do krajského kola. Očakávame, že táto hranica bude približne rovná tretine maximálneho počtu bodov.

V krajskom kole riešitelia riešia štyri teoretické úlohy, ktoré môžu tematicky nadväzovať na úlohy domáceho kola. V kategórii B súťaž týmto kolom končí. V kategórii A prebehne po opravení riešení koordinácia bodovacích škál, spoja sa výsledkové listiny do jednej celoštátnej a podľa nej je približne najlepších 30 riešiteľov pozvaných do celoštátneho kola.

V celoštátnom kole účastníci prvý deň riešia teoretické úlohy, druhý deň praktické úlohy. Najlepší riešitelia sú vyhlásení za víťazov. Približne desať najlepších riešiteľov následne SK OI pozve na týždňové výberové sústredenie. Podľa jeho výsledkov SK OI vyberie družstvá pre Medzinárodnú olympiádu v informatike (IOI) a Stredoeurópsku olympiádu v informatike (CEOI).

 

Ako majú vyzerať riešenia úloh?

V praktických úlohách je vašou úlohou vytvoriť program, ktorý bude riešiť zadanú úlohu. Program musí byť v prvom rade korektný a funkčný, v druhom rade sa snažte aby bol čo najefektívnejší.

V kategórii B môžete použiť ľubovoľný programovací jazyk.

V kategórii A musíte riešenia praktických úloh písať v jednom z podporovaných jazykov. Odporúčané je použiť C++, podporované sú ale aj Java, Pascal, Python, C# (mono) a viaceré ďalšie jazyky.

Odovzdaný program bude automaticky otestovaný na viacerých vopred pripravených testovacích vstupoch. Podľa toho, na koľko z nich dá správnu odpoveď, vám budú pridelené body. Výsledok testovania sa dozviete krátko po odovzdaní. Ak váš program nezíska plný počet bodov, budete ho môcť vylepšiť a odovzdať znova, až do uplynutia termínu na odovzdávanie.

Presný popis, ako majú vyzerať riešenia praktických úloh (napr. realizáciu vstupu a výstupu), nájdete na webstránke, kde ich budete odovzdávať.

Ak nie je v zadaní povedané ináč, riešenia teoretických úloh musia v prvom rade obsahovať podrobný slovný popis použitého algoritmu, zdôvodnenie jeho správnosti a diskusiu o efektivite zvoleného riešenia (t. j. posúdenie časových a pamäťových nárokov programu). Na záver riešenia uveďte program napísaný v ľubovoľnom bežnom programovacom jazyku. Ak používate v programe netriviálne algoritmy alebo dátové štruktúry (napr. rôzne súčasti STL v C++), súčasťou popisu algoritmu musí byť dostatočný popis ich implementácie.