Autorské riešenie
[stiahni py  : imp ]                                     

  • Počet riešiteľov: 4 / 7 = 57 %                       

  • Úspešnosť riešenia: 3,38 / 5 = 68%                   

 

Poschodie z čísla bytu vieme určiť, ak číslo bytu predelíme osmičkou bez zvyšku. Následne vynásobíme toto číslo dvoma a vieme výšku poschodia. Pomocou podmienok rozhodneme aké auto sa pri zásahu použije podľa dĺžky jeho rebríka.

def vyberAuto(cisloBytu):
    '''Vyberie ktoré auto sa pojde na hasicsky zasah.
    :param cisloBytu: číslo horiaceho bytu
    :type cisloBytu: int
    :return: dlzka rebrika
    :rtype: string
    '''
          
    vyskaPoschodia = 2
    poschodie = cisloBytu // 8
    vyska_poschodia = vyskaPoschodia * poschodie
    if vyska_poschodia <= 7:
        return 7
    if vyska_poschodia <= 13:
        return 13
    return 21          

 

Čo sa týka určenia svetovej strany, potrebujeme číslo bytu zmenšiť o jedna. Následne zistiť zvyšok po delení ôsmimi. Toto číslo potom bez zvyšku vydeliť dvojkou a už len vypísať prvok na indexe poľa svetových strán.

def stranaDomu(cisloBytu):
    '''Urci svetovu stranu domu, kde hori byt.
    :param cisloBytu: číslo horiaceho bytu
    :type cisloBytu: int
    :return: vracia svetovú stranu bytového domu ku ktorej má prísť auto
    :rtype: string
    '''
              
    svetoveStrany = ['Sever', 'Východ', 'Juh', 'Západ']
    cisloBytu -= 1
    cisloBytu %= 8
    cisloBytu //= 2
    return svetoveStrany[cisloBytu]  
Imagine Logo

viem vyberAuto :cisloBytu
    urobTu "poschodie cPodiel :cisloBytu 8
    urobTu "vyskaPoschodia 2
    urobTu "vypocet :vyskaPoschodia * :poschodie

    ak :vypocet <= 7[
     vysledok 7 ]

    ak :vypocet <= 13[
     vysledok 13 ]

    ak :vypocet > 13[
     vysledok 21 ]

viem stranaDomu :cisloBytu
    urobTu "svetoveStrany [Sever Vychod Juh Zapad]
    urobTu "cisloBytu :cisloBytu - 1
    urobTu "cisloBytu zvysok :cisloBytu 8
    urobTu "cisloBytu cPodiel :cisloBytu 2
    urobTu :cisloBytu + 1

    prvok :cisloBytu :svetoveStrany
 

Zhrnutie riešení úlohy

Túto úlohu riešili 4 tímy. Dva z nich ju zvládli na plný počet, jeden tím na polovičný počet bodov a jeden tím úlohu nezvládol. Riešenia boli riešené podobným štýlom ako autorské riešenie a dokonca jedno z nich bolo vypracované jednoduchšie. Riešenie tejto úlohy spočívalo na uvedomení si dvoch základných myšlienok a na tieto myšlienky sa podarilo prísť trom tímom. Podľa toho, že úlohu riešil iba zlomok súťažiacich usudzujem, že sa zadanie úlohy mohlo zdať zložité, ale riešitelia nakoniec získali až 68% bodov.