Ruka
Županijska razina / Primjena algoritama OŠ 2019. / Osnovna škola (8. razred) - 3. zadatak
Mirko je poslagao N loptica u niz te ih označio po redu brojevima od 1 do N. Iznad loptice s oznakom 1 postavio je robotsku ruku čije je kretanje programirao jednostavnim programskim jezikom. Naredbe programskog jezika su:
LIJEVO x - pomiče robotsku ruku x mjesta (1 ≤ x ≤ 1000) u nizu lijevo od trenutne pozicije. U slučaju da ruka dođe do početka niza prestat će se pomicati te će ostati iznad prve loptice u nizu.
DESNO x - pomiče robotsku ruku x mjesta (1 ≤ x ≤ 1000) u nizu desno od trenutne pozicije. U slučaju da ruka dođe do kraja niza prestat će se pomicati te će ostati iznad posljedne loptice u nizu.
ZAMJENA - ruka uzima lopticu iznad koje se trenutno nalazi te na tu poziciju spušta lopticu koju trenutno drži. Na početku pokretanja programa ruka drži lopticu s brojem 0.
REPEAT x - oznaka za početak petlje. Iza naredbe REPEAT slijedi određeni broj naredbi koje se izvode x puta (1 ≤ x ≤ 100) sve do naredbe ENDREPEAT koja zatvara petlju. Mirkov program neće sadržavati ugniježđene petlje, tj. između naredbe REPEAT i ENDREPEAT neće se nalaziti druga naredba REPEAT. Mirkov program će biti ispravan, tj. ENDREPEAT naredba se neće nalaziti prije naredbe REPEAT i svaka naredba REPEAT će biti zatvorena svojom ENDREPEAT naredbom.
ENDREPEAT - već ranije opisana naredba koja označava kraj popisa naredbi koje se izvode u petlji.
Obrati pažnju na sekciju bodovanje, u određenim primjerima nije potrebno implementirati izvođenje svih naredbi. Mirko je isprogramirao robotsku ruku, pokrenuo program koji je napisao te ga sada zanima kako će izgledati niz loptica nakon završetka izvršenja programa. Pomozi Mirku tako što ćeš mu nakon što ti pokaže program robotske ruke reći završni poredak loptica.
ULAZNI PODACI
U prvom retku nalazi se prirodan broj N (3 ≤ N ≤ 1000), broj loptica u nizu.
U drugom retku nalazi se prirodan broj M (3 ≤ M ≤ 100), broj linija programa robotske ruke.
U idućih M redaka nalaze se naredbe programa robotske ruke. Naredbe programa neće biti uvlačene te se neće pojavljivati nepotrebne praznine
Izlazni podaci
U jednom retku treba ispisati redom brojeve s N loptica iz niza nakon završetka izvođenja programa.
Test podaci
Ulaz
4
9
DESNO 2
ZAMJENA
LIJEVO 2
ZAMJENA
DESNO 2
ZAMJENA
LIJEVO 1
LIJEVO 1
ZAMJENA
Izlaz
0 2 1 4
Ulaz
3
6
DESNO 5
REPEAT 2
LIJEVO 1
ZAMJENA
ENDREPEAT
ZAMJENA
Izlaz
1 0 3
Opis drugog primjera
Nakon naredbe “DESNO 5” robotska ruka se nalazi iznad treće loptice. Tijekom izvođenja petlje ruka se pomakne na drugu poziciju, zamijeni lopticu s brojem 2 koja se nalazi na toj poziciji s lopticom s brojem 0 koju je držala od početka izvođenja programa; zatim izvrši tijelo petlje još jednom: pomakne se na poziciju jedan gdje zamijeni lopticu s brojem 1 koja se tamo nalazi s lopticom 2 koju drži. Nakon izvođenja petlje ruka izvršava završnu naredbu “ZAMJENA”, tj. vraća lopticu s brojem 1, a uzima lopticu s brojem 2.
Ulaz
5
12
LIJEVO 1
DESNO 2
REPEAT 2
DESNO 2
ZAMJENA
LIJEVO 3
ZAMJENA
ENDREPEAT
LIJEVO 2
REPEAT 3
ZAMJENA
ENDREPEAT
Izlaz
1 5 3 2 0
Comments