Autorské riešenie
[stiahni imp : py]

  • Počet riešiteľov: 17 / 23 = 74 %                       

  • Úspešnosť riešenia: 1,38 / 6 = 23 %

Našou úlohou je vypočítať, koľko cibuliek žltých a koľko cibuliek červených tulipánov je potrebné kúpiť, aby sa dali v štvorcovom záhone vysadiť do zadaného tvaru.

Po uvedomení si jednej kľúčovej vlastnosti, je riešenie jednoduché.

Keď sa pozrieme len na žlté kvety, môžeme si všimnúť, že sú vysadené akoby v štvorcovej sieti na mrežových bodoch.

ukážka rajskej záhrady

V jednom riadku je ich počet rovný dĺžke záhona podelenej vzdialenosťou medzi 2 susednými kvetmi v rovnakej vrstve a to celé zvýšené o 1. Spomínaný podiel dĺžky záhona a vzdialenosti medzi 2 susednými kvetmi v rovnakej vrstve nazvime parameter.

Keďže počet riadkov, v ktorých sú vysadené tulipány je taký istý ako počet kvetov v jednom riadku, celkový počet tulipánov je teda (parameter + 1) * (parameter + 1), čo je (parameter + 1)^2.

Keď sa pozrieme len na červené kvety, vidíme, že je to s nimi podobne, ako so žltými. Tiež sú vo štvorcovej sieti na mrežových bodoch, akurát je ich v každom riadku aj stĺpci o 1 menej. Je ich teda parameter*parameter, čo je parameter^2.

;Imagine logo
viem zisti_pocet_cibuliek :dlzka_zahona :vzdialenost
  ak (alebo :dlzka_zahona <=0 :vzdialenost <=0)[
    pis "|chybne zadanie parametrov|
    vy []
  ]

  urobTu "parameter (div :dlzka_zahona :vzdialenost)
  urobTu "pocet_zltych (:parameter+1)*(:parameter+1)
  urobTu "pocet_cervenych :parameter*:parameter

  vy zoznam :pocet_zltych :pocet_cervenych

koniec

 

Python
def zistiPocetCibuliek(dlzka_zahona, vzdialenost):
    if (dlzka_zahona <= 0 or vzdialenost <= 0):
        print("aspoň 1 parameter nie je vhodný.")
        return []

    parameter = dlzka_zahona // vzdialenost

    pocet_zltych = (parameter + 1) * (parameter + 1)
    pocet_cervenych = parameter * parameter
    return [pocet_zltych, pocet_cervenych]

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

Najčastejšie si žiaci úlohu neuchopili ako reálny problém, a neuvedomili si, aké parametre by mala procedúra/funkcia očakávať. Väčšina si úlohu zjednodušila, keďže na vstupe očakávala parameter vyjadrujúci počtu kvetov.

Niektoré tímy si neuvedomili, že na jednej strane jednej vrstvy je počet cibuliek o 1 väčší ako počet medzier. Taktiež málokto ošetril nekladné vstupné hodnoty.

Až 8 tímov dostalo za riešenie 0 bodov, z toho 2 tímy sa snažili graficky znázorniť rajskú záhradu, avšak aj tak neúspešne. Správne, resp. vhodné parametre požadovali len 2 tímy, z toho iba tím Bojovnik_Macek vyriešil úlohu úplne správne.