Co se hodí

mít v rukávu?

    Na této stránce nabízíme seznam užitečných tipů a triků, které ti během soutěže můžou pomoct. Měly by ti napovědět, jakým způsobem úlohy řešit, aby to bylo pohodlné a neznamenalo to pro tebe zbytečně hodně práce.

  1. Umím programovat jen trochu a neznám moc žádné knihovny, ani vývojové API, vadí to?
  2. Nevadí! Pro všechny úlohy stačí napsat jen jeden krátký program do jednoho souboru. Ten přečte vstup, provede nějaký výpočet a vypíše výstup.

  3. Co všechno bych ve svém programovacím jazyce měl umět?
  4. Jen naprosté základy. Pokud umíš používat alespoň podmínky, cykly a pole, tak máš určitě dostatek znalostí pro vyřešení více jak poloviny úloh.

  5. Jako zadání dostanu soubor a odevzdat musím taky soubor. Musím ve svém jazyce umět pracovat se soubory?
  6. Překvapivě ani to není nutné. Ve většině programovacích jazyků je možné číst jeden soubor, jako kdyby byl na vstup zadaný z klávesnice, a také se do jiného souboru dají vypisovat všechny výstupy. Chceš vědět, jak se to dělá? Přečti si náš krátký návod o vstupu a výstupu.

  7. Které úlohy mám řešit jako první?
  8. Úlohy jsme seřadili podle toho, jak se nám zdají náročné. Takže určitě začni těmi nejjednoduššími a pokračuj ke složitějším. Každá má navíc dvě sady vstupů: lehčí (malou) a těžší (velkou). Pro lehčí obvykle stačí vymyslet jakýkoliv postup, který spočítá správný výsledek, a pro tu těžší už je často třeba si dávat pozor, aby výpočet nebyl příliš pomalý.

  9. V jednom vstupním souboru mám řešit více vstupů. Jak?
  10. Obvykle nejlepší je mít napsané dvě funkce. První umí načíst a vyřešit jeden vstup. Druhá z prvního řádku načte kolikrát má zavolat první funkci, a pak ji tolikrát zavolá.

  11. Mám dva nápady na řešení. Které mám zkusit naprogramovat?
  12. Určitě to, o kterém víš jistěji, že bude fungovat. Pokud jím úspěšně vyřešíš aspoň lehčí sadu vstupů, tak pak můžeš zkontrolovat, jestli se odpovědi shodují s tvým dalším řešením.

  13. Jak poznám, jestli je můj program dost efektivní?
  14. Čím méně výpočtů provede, tím je efektivnější. Asi nejjednodušší je zamyslet se, jak program běží a kolik řádově řádků programu během toho vykoná (včetně opakování všech cyklů). Pro lepší představu přidáváme krátký návod o složitosti.

  15. Určitě to mám správně, ale stále se mi to nedaří úspěšně odevzdat. Proč?
  16. Protože je to rozbitý! Určitě pečlivě zkontroluj, zda přesně dodržuješ formát výstupu, že velikosti čísel nepřekračují omezení datových typů, které používáš, že mezi jednotlivými vstupy poctivě nuluješ všechna používaná pole a proměnné, že všechna pole jsou dostatečně velká a že odesíláš řešení správné úlohy. Pokud nic z toho nepomůže, tak nám napiš a my ověříme, zda se nejedná o nějakou drobnost či zda nevznikla chyba na naší straně.

Máš na to!

I ty můžeš vyhrát! Nebo to aspoň zkusit :)