Preskoči na glavno vsebino
ACM-moodle
  • Domov
  • Koledar
  • Več
Slovenščina ‎(sl)‎
English ‎(en)‎ Slovenščina ‎(sl)‎
Trenutno uporabljate gostujoči dostop
Prijavite se
ACM-moodle
Domov Koledar
Razširi vse Skrči vse

Bloki

Preskoči Ura

Ura

Server iconStrežniška ura:
  1. rtk2012-PrvaSkupina
  2. 5. naloga
  3. 5. naloga

5. naloga

Zahteve zaključka
Odprto: sobota, 24. marec 2012, 10.00
Rok za oddajo: sobota, 24. marec 2012, 13.00

V Afganistan!

Imamo n vojakov, oštevilčenih s števili od 0 do n−1. Med njimi vlada stroga hierarhija: nekaj vojakov ima najvišji možen čin (in jim ni nihče nadrejen), vsak od preostalih vojakov pa ima natanko enega neposredno nadrejenega vojaka.
Nekatere od vojakov — recimo jim gajstni — želimo poslati v Afganistan. Kateremu koli vojaku (gajstnemu ali ne) lahko damo ukaz, naj se odpravi, in bo to seveda naredil, pri tem pa bo s seboj odpeljal tudi vse sebi podrejene vojake. Za primer glej sliko: vsaka točka predstavlja vojaka, vojaki z višjimi čini so narisani višje. Gajstni vojaki so pobarvani črno. Če damo ukaz vojaku, označenemu s puščico, bo s seboj v Afganistan odpeljal še preostale tri vojake iz črtkano obrobljenega območja.

Na primeru s slike se očitno ne da izdati enega samega ukaza, s katerim bi poslali na pot vse gajstne vojake. Tudi dva ukaza ne zadoščata; lahko pa to naredimo s tremi ukazi, celo na dva različna načina. Zanima nas, koliko ukazov potrebujemo v splošnem.

Napiši program, ki kot podatke dobi opis vojaške hierarhije ter gajstnih vojakov in vrne najmanjše število ukazov, s katerim lahko dosežemo, da bodo v Afganistan od- potovali vsi gajstni vojaki. Če pri tem na pot ukažemo še kakšnim ne-gajstnim vojakom, ni nič narobe. Za dostop do podatkov uporabi naslednji funkciji:

  • Nadrejeni(i), ki vrne zaporedno številko vojaka, neposredno nadrejenega vojaku i, oziroma −1, če ima vojak i najvišji možen čin in mu ni nihče nadrejen;
  • Gajsten(i), ki vrne 1, če je vojak i gajsten (in ga torej moramo poslati v Afganistan), in 0 sicer.

Predpostavi še, da je na voljo spremenljivka n, ki vsebuje število vseh vojakov.

PDF besedilo.

Trenutno uporabljate gostujoči dostop (Prijavite se)
Povzetek hrambe podatkov
Stran poganja Moodle