3. naloga (Kozarci)

Smo v proizvodnji večstranih kozarcev (imajo n stranic, pri čemer je n najmanj 4), kjer moramo nadzorovati stroj za barvanje stranic teh kozarcev. Na voljo imamo več funkcij za nadzorovanje tega stroja:

  • void Naslednji() - vzame naslednji kozarec s tekočega traku (nekatere stranice na njem so lahko že pobarvane). Tega, kako je kozarec na začetku obrnjen, ne vemo.
  • void Koncaj() - odloži ravnokar pobarvan kozarec na tekoči trak
  • void Zavrzi() - odloži kozarec v zaboj s pokvarjenimi oziroma nepravilno pobarvanimi kozarci
  • void Obrni() - obrne kozarec okoli vertikalne osi za 1/n obrata (torej za eno stranico naprej)
  • int Preveri() - preveri, katera barva je na trenutno sprednji stranici; če trenutna stranica ni pobarvana, funkcija vrne 0
  • void Pobarvaj(int barva)- pobarva trenutno sprednjo stranico z navedeno barvo.  To funkcijo smeš poklicati le, če trenutna stranica še ni pobarvana.

Zahtevani vrstni red barv po stranicah kozarca je podan v tabeli int Barve[n].  (Število stranic, n, je tudi podano in je za vse kozarce enako.)  Napiši program, ki v neskončni zanki jemlje kozarce s tekočega traku, poskrbi, da so pravilno pobarvani (pri tem pregleda že pobarvane stranice in pobarva še nepobarvane stranice), in jih odlaga na trak; če pa ugotovi, da kozarca ni mogoče pravilno pobarvati, naj ga odvrže.

<PDF>