Autorské riešenie
[stiahni py]

  • Počet riešiteľov: 47 / 49 = 96%

  • Úspešnosť riešenia: 2,43 / 7 = 34,65%

Pre výpočet plochy miestosti potrebujeme poznať jej dĺžku, šírku a výšku. Tieto tri rozmery sú naše vstupné parametre. Plochu stien miestností a stropu vypočítame podľa vzorca:
 2 * (dĺžka + šírka) * výška + dĺžka * šírka. Od tejto plochy budeme odpočítavať plochu okien a dvier.

Korytnačky majú na domoch štvorcové okná o veľkosti polovice plochy steny. Okno s takouto veľkosťou sa na stenu nemusí zmestiť. Preto si vytvoríme pomocnú fukciu, ktorá nám povie, či sa okno na stenu vojde. Parametre pre túto fukciu sú výška a dĺžka alebo šírka. Funkcia vypočíta plochu okna a jeho stranu. Ak je strana okna menšia ako výška alebo dĺžka, či širka, tak dostaneme kladnú odpoveď.

#Python
def je_okno(rozmer_steny, vyska):
    plocha_steny = rozmer_steny* vyska
    plocha_okna = plocha_steny / 2
    strana_okna = math.sqrt(plocha_okna)
    return strana_okna <= rozmer_steny and strana_okna <= vyska

Na jednej zo stien sú umiestnené dvere, ktoré sú vysoké až po strop a široké jednu štvrtinu z dĺžky steny. V ďalšom kroku overíme, či sa dvere vôjdu spolu s oknom na stenu. Ak je to možné, chceme, aby bolo okno na každej stene. Opať si vytvoríme pomocnú funckiu, ktorá nám povie, či na danú stenu vieme umiestniť okno aj dvere.

#Python
def je_okno_dvere(rozmer_steny,vyska):
    plocha_steny = rozmer_steny * vyska
    plocha_okna = plocha_steny / 2
    strana_okna = math.sqrt(plocha_okna)
    stvrtina = rozmer_steny / 4
    return strana_okna <= rozmer_steny - stvrtina and strana_okna <= vyska

Vo funkcii plocha_nateru potrebujeme odpočítať od plochy stien plochu okien a dvier. Vieme, že v dome je, čo najväčší možný počet okien a ak poloha dverí neovplyvní počet okien, tak sú umiestnené na dlhšej stene. Máme niekoľko možností umiestnenia okien a dvier:

  • na všetkých stenách je okno a dvere sú na dlhšej stene,
  • okná a dvere sú len na dlhšej stene,
  • na všetkých stenách je okno a dvere sú na kratšej stene,
  • dvere sú na kratšej stene a okná na dlhšej stene a na protiľahlej kratšej stene,
  • dvere sú na kratšej stene a okná na dlhšej stene,
  • dvere sú na dlhšej stene a okná na kratšej,
  • v miestností sú len dvere na dlhšej stene.
Kedže protiľahlé steny sú takmer vo všetkých prípadoch rovnaké, sledujeme len jednu stenu a pri odpočítavaní plochu okien vynásobíme 2.

#Python
def plocha_nateru(sirka, dlzka, vyska):
    plocha_steny_sirka_vyska = sirka * vyska
    plocha_steny_dlzka_vyska = dlzka * vyska
    plocha_strop = sirka*dlzka
    plocha_okien = 0
    # zistíme, ktorá strana je dlhšia a podľa nej overujeme, kde budú dvere
    if dlzka > sirka:                               
        dlhsia_stena = dlzka
        kratstia_stena = sirka
    else:
        dlhsia_stena = sirka
        kratstia_stena = dlzka

    # dvere a okná su na dlhšej strane
    if je_okno_dvere(dlhsia_stena,vyska):           
        plocha_dverí = vyska * (dlhsia_stena/4)
        plocha_okien = 2*(dlhsia_stena*vyska)/2
        # okna sú aj na kratšej strane
        if je_okno(kratstia_stena,vyska):           
            plocha_okien = plocha_okien + 2*((kratstia_stena*vyska)/2)

    # okná sú na dlhšej strane
    elif je_okno(dlhsia_stena,vyska):               
        #dvere sú na kratšej strane
        plocha_dverí = vyska * (kratstia_stena/4)   
        plocha_okien = 2*(dlhsia_stena*vyska)/2
        # na kratšej strane sú aj okná
        if je_okno_dvere(kratstia_stena, vyska):    
            plocha_okien = plocha_okien + 2* ((kratstia_stena * vyska) / 2)
        # k dverám sa okno nezmestí, aleokno je na protiľahlej kratšej strane
        if je_okno(kratstia_stena, vyska):          
            plocha_okien = plocha_okien + (kratstia_stena * vyska) / 2
    else:
        # dvere sú na dlhšej strane, okno sa nezmestí
        plocha_dverí = vyska * (dlhsia_stena/4)     
        # okná sú na kratšej strane
        if je_okno(kratstia_stena, vyska):          
            plocha_okien = plocha_okien + (2 * ((kratstia_stena * vyska)/2))

    return (2 * plocha_steny_sirka_vyska + 
            2 * plocha_steny_dlzka_vyska + plocha_strop) -\
           plocha_okien - plocha_dverí

Vaše najčastejšie chyby a zaujímavé riešenia

Medzi najčastejšie chyby patrilo neoverenie podmienok, či sa okno s polovičnou veľkosťou ako je plocha steny na stenu zmestí alebo či sa na stenu spolu s oknom zmestia aj dvere so štvrtinovou dĺzkou oproti dĺžke steny, na ktorej sú umiestnené.