#00007E

poruka

Mali Djurica kuca poruku na mobilnom telefonu. On je otkucao n redova. Kada mali Djurica kaže da se kursor nalazi na poziciji (i, j), to zna?i da se nalazi u i-tom redu iza j-tog znaka - ako je j nula, to zna?i da je kursor na po?etku i-tog reda. Malog Djuricu zanima koliko najmanje puta treba da pritisne tastere gore, dole, levo, desno (koji služe za pomeranje kursora kroz poruku) tako da od pozicije (sr, sc) stigne do pozicije (fr, fc). Kursor sem pozicije sadrži i vrednost poslednje pozicije u redu koja je dobijena pritiskom tastera levo ili desno, ?ije ?e zna?enje detaljno biti opisano u nastavku problema. Ovu vrednost ?emo zvati poslPoz. Mali Djurica ?e Vam re?i koliko redova ima u njegovoj poruci i koliko je duga?ak svaki red, tj. leni broj koji predstavlja broj znakova u i-tom redu (odnosno dužinu i-tog reda). On Vam tako?e šalje na koji na?in funkcionišu njegovi tasteri i njegov mobilni:<br><br>

1. Slede?i red poslednjeg reda je prvi red; prethodni red prvog reda je poslednji red, odnosno redovi su organizovani cikli?no. Prelaskom u slede?i, odnosno prethodni red, kursor ?e se na?i na poziciji koju pokazuje poslPoz u skladu sa pravilom 8.<br>
2. Pritiskom na taster dole kursor prelazi u slede?i red; pritiskom na taster gore kursor prelazi u prethodni red.<br>
3. Pritiskom na taster gore ili dole vrednost poslPoz se ne menja.<br>
4. Ako se kursor nalazi na po?etku reda r, pritiskom na taster levo kursor prelazi na poziciju iza poslednjeg znaka prethodnog reda i vrednost poslPoz se menja na vrednost pozicije iza tog znaka.<br>
5. Ako se kursor ne nalazi na po?etku reda r, tada pritiskom na taster levo za pozicije (r, c), prelazi na (r, c-1), a poslPoz postaje c-1.<br>
6. Ako se kursor nalazi iza poslednjeg znaka reda r, pritiskom na taster desno kursor prelazi na po?etak slede?eg reda i vrednost poslPoz postaje 0.<br>
7. Ako se kursor ne nalazi iza poslednjeg znaka reda r, tada pritiskom na taster desno sa pozicije (r, c), prelazi na (r, c+1), a poslPoz postaje c+1.<br>
8. Ako se u nekom momentu kursor na?e u redu koji ima c karaktera, a vrednost poslPoz je ve?a od c, tada ?e kursor biti na poziciji c u tom redu. Vrednost poslPoz SE NE MENJA u tom slu?aju.<br><br>

Ulaz:<br><br>

(Ulazni podaci se citaju sa standardnog ulaza) U prvom redu se nalazi prirodan broj n (1 ? n ? 100). Potom se u n redova nalaze celi brojevi leni (0 ? leni ? 100) koji redom ozna?avaju dužine redova. Zatim se u n+2-om redu nalaze prirodni brojevi sr (1 ? sr ? n), sc (0 ? sc ? lensr), fr (1 ? fr ? n) i fc (0 ? fc ? lenfr). Prva dva od tih polja ozna?avaju polaznu poziciju (redni broj vrste i kolone), a druga dva završnu poziciju.<br><br>

Izlaz:<br><br>

(Izlazne podatke ispisati na standardni izlaz) Na standardni izlaz ispisati minimalni broj pritisaka tastera da se od pozicije (sr, sc) do?e do pozicije (fr, fc) koriste?i navedena pravila.<br><br>

Primeri:<br><br>
Ulaz:<br>
5<br>
1<br>
3<br>
1<br>
3<br>
1<br>
4 3 2 3<br>
<br>
Izlaz: <br>
2<br><br>

Objašnjenje.<br>

Poruka bi mogla da izgleda ovako:<br>
X<br>
XXX<br>
X<br>
XXX<br>
X<br>
a kursor se nalazi iza boldovanog slova. Pozicija je (4, 3), poslPoz ima vrednost 3. Tada pritiskom gore kursor prelazi na kraj 3. reda i ima poziciju (3, 1), a poslPoz ostaje ista. Ponovo pritiskom gore prelazi u 2. red, a kursor prelazi na poziciju u redu koju pokazuje poslPoz i kursor se nalazi na željenoj poziciji.<br><br>

Ulaz:<br>
7<br>
10<br>
100<br>
100<br>
100<br>
100<br>
100<br>
100<br>
2 50 3 10<br><br>
Izlaz:<br>
5<br>
<br>
Objašnjenje.<br>

Poruka bi mogla da izgleda ovako<br>
XXXXXXXXXX<br>
XX...XX - ukupno 100 znakova X<br>
XX...XX - ukupno 100 znakova X<br>
... - 6 redova, svaki sa 100 znakova X<br>
XX...XX - ukupno 100 znakova X.<br>
Pritiskom na taster gore kursor prelazi na (1, 10); poslPoz je 50. Pritiskom na taster levo kursor prelazi na (1, 9); poslPoz postaje 9. Pritiskom na taster desno kursor prelazi na poziciju (1, 10); poslPoz postaje 10. Pritiskom dva puta na taster dole kursor prelazi na poziciju (2, 10), pa (3, 10).

Submit solution

Coming later

The grading service will be connected in a later migration step. You can inspect the task and your previous results now.