Submit solution

Points: 1
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type

Mali Đurica kuca poruku na mobilnom telefonu. On je otkucao nredova. Kada mali Đurica 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-togreda. Malog Đuricu zanima koliko najmanje puta treba da pritisnetastere gore, dole, levo, desno (koji služe za pomeranje kursorakroz poruku) tako da od pozicije (sr, sc) stigne do pozicije(fr, fc). Kursor sem pozicije sadrži i vrednost poslednjepozicije 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 Đurica će Vam reći koliko redova ima u njegovojporuci i koliko je dugačak svaki red, tj. leni broj kojipredstavlja broj znakova u i-tom redu (odnosno dužinu i-togreda). On Vam takođe šalje na koji način funkcionišu njegovitasteri i njegov mobilni:

  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.
  2. Pritiskom na taster dole kursor prelazi u sledeći red; pritiskom na taster gore kursor prelazi u prethodni red.
  3. Pritiskom na taster gore ili dole vrednost poslPoz se ne menja.
  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.
  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.
  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.
  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.
  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.

Ulaz:

(Ulazni podaci se učitavaju sa standardnog ulaza) U prvom redu se nalazi prirodan broj n (1≤ n ≤ 100). Potom se u n redova nalaze celibrojevi leni (0 ≤ leni ≤ 100) koji redomoznačavaju dužine redova. Zatim se u n+2-om redu nalazeprirodni brojevi sr (1 ≤ srn), sc (0≤ sclensr), fr (1 ≤ frn) i fc (0 ≤ fclenfr). Prva dva od tihpolja označavaju polaznu poziciju (redni broj vrste i kolone), adruga dva završnu poziciju.

Izlaz:

(Izlazni podaci se ispisuju na standardni izlaz) U izlaznu datoteku ispisati minimalni brojpritisaka tastera da se od pozicije (sr, sc) dođe do pozicije(fr, fc) koristeći navedena pravila.

  • Maksimalno vreme izvršavanja programa je 0.2 sekunda.

Primer 1:

standardni ulaz      standardni izlaz
5
1
3
1
3
1
4 3 2 3
        
2

Objašnjenje.

Poruka bi mogla da izgleda ovako
X
XXX
X
XXX
X
a kursor se nalazi iza boldovanog slova. Pozicija je (4, 3), poslPoz ima vrednost 3. Tadapritiskom 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 pokazujeposlPoz i kursor se nalazi na željenoj poziciji.

Primer 2:

standardni ulaz      standardni izlaz
7
10
100
100
100
100
100
100
2 50 3 10
        
5

Objašnjenje.

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


Comments

There are no comments at the moment.