Autorské riešenie
V skutočnej olympiáde z informatiky sú pravidlá ohľadom počtu medailí uvedené trochu voľnejšie. V našom riešení ich však budeme striktne dodržiavať. Pripomeňme si pravidlá:
Isto ste si všimli, že v istých situáciách nevieme pravidlá dodržať. Ak by bol počet súťažiacich menší ako 12, nemali by sme udeliť žiadnu medailu. Pomer medailí 1:2:3 by teda nebol dodržaný. V tomto prípade úloha nemá riešenie. Pozrime sa teraz na riešenie našej úlohy. Pre určenie počtu medailí nepotrebujeme vedieť bodové ohodnotenie jednotlivých súťažiacich, stačí nám len ich počet. Z počtu súťažiacich vieme zistiť, koľko najviac medailí môžeme udeliť - nanajvýš polovicu počtu súťažiacich. Navyše počet medailí musí byť deliteľný číslom 6. Znížime teda polovicu súťažiacich na najbližší menší násobok čísla 6 (odpočítame zvyšok po delení 6). Získaný počet rozdelíme v pomere 1:2:3. Časť riešenia môže vyzerať nasledovne: ;Imagine logo #Python Ak berieme do úvahy aj riešiteľnosť úlohy, doplníme podmienku riešiteľnosti: ;Imagine logo #Python Všimnime si odlišný tvar aritmetických operácií v Imagine a v Python-e.
Vaše zaujímavé riešenia a najčastejšie chyby Najčastejšou chybou bolo, že ste nedôsledne dodržali podmienky zadania. Výsledná procedúra, resp. funkcia mala vrátiť výsledné počty medailí. Nie ich vypísať. Ak procedúra/funkcia výsledok vracia, stáva sa omnoho univerzálnejšou. Tento vrátený výsledok môžeme vypísať alebo ho použiť ako súčasť ďalšieho výpočtu. Rovnako častou chybou bolo, že ste analýzou úlohy nezistili, že úloha nie je vždy riešiteľná. |
|||||||||||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |