Autorské riešenie
[stiahni]

Úlohu vyriešime tak, že najprv vypočítame celkový súčet jabĺk zo všetkých stromov. Potom budeme opätovne postupne sčitovať počty jabĺk od ľavého stromu. Budeme to robiť, až kým nenarazíme na niektorý zo stromov, pri ktorom dosiahneme alebo prekročíme polovičné množstvo všetkých jabĺk. Toto poradové číslo stromu si zapamätáme. Úplne na konci vypíšeme dané poradové číslo stromu v prípade presiahnutia polovičného množstva všetkých jabĺk. Ak sa pri danom strome dosiahla presne polovica všetkých jabĺk, znamená to, že si oba konce dediny rozdelia úrodu na celých stromoch. V tomto prípade to znamená to, že neexistuje taký strom, z ktorého by zberali oba konce dediny.

viem spocitaj :pocetStromov :pocetVlavo :rozdiel
  ;Výpočet celkového množstva jabĺk SUCET
  urobTu "sucet 0
  urobTu "pocet :pocetVlavo
  opakuj :pocetStromov [
    urobTu "sucet :sucet + :pocet
    urobTu "pocet :pocet + :rozdiel
  ]
 
  ;Určenie poradového čísla stromu HRANICA, pri ktorom je dosiahnutý aspoň
  ;polovičný počet jabĺk z celkového množstva jabĺk

  urobTu "sucetx 0
  urobTu "pocet :pocetVlavo
  urobTu "hranica 0
  kym [2*:sucetx<:sucet] [
    urobTu "sucetx :sucetx + :pocet
    urobTu "pocet :pocet + :rozdiel 
    urobTu "hranica :hranica+1
  ] 
  
  ;Výpis poradového čísla stromu HRANICA, z ktorého sa rozdelia jablká
  ;medzi oba konce dediny

  ak2 (2*:sucetx=:sucet) [
    pis "|neexistuje taký strom|
  ][
    (pis "|je to| :hranica "|.strom|)
  ]
koniec

Uvedené riešenie vieme vylepšiť, keď budeme spočítavať počty jabl´k od stromov s väčším počtom jabĺk, t.j v našom prípade sprava doľava.

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

Úlohu vyriešili len dva tímy, bohužiaľ riešenia neboli kompletné.

Najčastejšie nedostatky, ktorých ste sa dopustili vo svojich riešeniach a naše odporúčania:

  • menšia prehľadnosť programu, kde v tele cyklu boli uvedené viacero pírkazov za sebov v jednom dlhom riadku - odporučujeme písať jednotlivé príkazy do nových riadkov,
  • v procedúre odporúčame, aby ste používali lokálne premenné t.j. príkaz priradenia urobTu