Sunteți pe pagina 1din 1

Ministerul Educaiei i Cercetrii

Olimpiada Naional de Informatic


Galai, 25 martie 1 aprilie 2005

Robinson

Clasa a VI-a

100 puncte

Fiierul surs: robinson.c, robinson.cpp, robinson.pas sau robinson.bas


Robinson are un teren de forma ptrat, ca un tablou bidimensional, cu latura de m uniti (cu m2 parcele). O
parcel este un ptrat elementar al tabloului. Liniile i coloanele sunt numerotate de la 1 la m: liniile de sus n jos,
iar coloanele de la stnga la dreapta.
El a semnat gru i s-a rugat s aib o recolt bogat. Ruga i-a fost ascultat i grul a rsrit astfel: n parcelele
din prima linie, recoltele au fost de la stnga spre dreapta: n, n+1, n+2, boabe de gru i n parcelele de pe
prima coloan, recoltele au fost de sus n jos: n, n+1, n+2, boabe de gru.
Apoi, dac parcurgem celelalte parcele linie cu linie ncepnd cu a doua linie, iar n cadrul unei linii, ncepnd cu
coloana a doua, atunci recolta din linia i i coloana j a fost egal cu suma recoltelor de pe poziiile (i-1,j) i (i,j-1).
Dac aceste sume depesc 999, atunci ele vor fi nlocuite cu numerele formate din ultimele 3 cifre ale sumei
respective (de exemplu, dac suma=1234, se va reine numrul 234).
Odat cu mplinirea rugii, Robinson a avut un vis n care, pentru a avea noroc i anul viitor, i se cerea ca n prima
zi s culeag grul astfel: s plece de la o poziie dat (linia l i coloana c), de unde va culege toate boabele de pe
acea poziie. Apoi, el va calcula restul mpririi la 4 a numrului de boabe de pe acea poziie. Poziia urmtoare
pentru cules va fi cea vecin din Nord, dac restul este 0, cea vecin din Est, dac restul este 1, cea vecin din Sud,
dac restul este 2, sau cea vecin din Vest, dac restul este 3.
Drumul acesta pe care l-a visat se va opri fie cnd la poziia urmtoare este n afara terenului, fie cnd poziia
urmtoare este una de pe care s-a cules deja recolta.
Cerin
Scriei un program care s citeasc numerele m, n, l i c i care s afieze:
a) recoltele de pe fiecare parcel; 30% din punctaj;
b) succesiunea parcelelor vizitate, n ordinea n care s-a cules grul n drumul visat; nc 70% din punctaj ;
Date de intrare
Se citesc de la tastatur numerele: m, n, l, c n aceast ordine, de pe o linie, ele fiind separate de un spaiu.
Date de ieire:
Pe ecran se vor afia n aceast ordine:
a) elementele tabloului (o linie a tabloului pe o linie de ecran; numerele de pe aceeai linie, cu un spaiu ntre ele);
b) pentru fiecare parcel parcurs (inclusiv cea de plecare i cea final), se scrie o linie cu dou numere separate de
un spaiu: linia i coloana parcelei.
Restricii i precizri
m,n,l,c sunt numere naturale, 1<= m <=20; 1<= n <=100; l i c indic o poziie corect din tablou.
Exemplu
Citire
Afiare
55 56 57 58
m=4
n=55 56 112 169 227
57 169 338 565
l=1
c=3
58 227 565 130
1 3
1 4
2 4
2 3

Explicaie
a) m=4, adic tabloul ptrat are latura de 4 uniti. n=55, deci prima linie este:
55, 56, 57 si 58. La fel i prima coloan :55, 56, 57, 58, de sus n jos. Apoi linia
a doua se completeaz astfel: a[2,2]=a[1,2]+a[2,1]=56+56=112, apoi a[2,3] =
a[1,3]+a[2,2]=57+112=169 ; apoi a[2,4]=a[1,4]+a[2,3] etc. Linia a treia, se va
completa astfel: a[3,2]=a[2,2]+a[3,1];apoi a[3,3]=a[2,3]+ a[3,2], apoi a[3,4]=
a[2,4]+ a[3,3] etc.
Atentie : a[4,4]=a[3,4]+a[4,3]=565+565=1130 i se reine a[4,4]=130, adic
numrul format din ultimele 3 cifre ale lui 1130.
b) Poziia de plecare: a[1;3]=57, cu rest 1, deci direcia este Est. Aici avem
a[1,4]=58, care are rest 2, deci direcia este Sud. Aici a[2,4]=227, cu rest 3, deci
direcia este Vest, unde avem a[2,3]=169. Acesta are restul 1 i direcia este Est,
i ar trebui s se revin pe poziia (2,4) pe care a mai fost. S-au afiat poziiile
(1 ;3),(1 ;4),(2,3) i (2 ;3). Drumul acesta ar fi avut doi pai.
Dac n loc de l=1 i c=3 am fi avut l=3 i c=4, atunci a[3,4] = 565, cu rest 1,
deci direcia Est i ar trebui s ias din teren. Drumul acesta ar avea un pas.
Timp maxim de execuie/test: 1 secund.

S-ar putea să vă placă și