Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Clasa a X-a
PROBLEMA 2 - Matrice energetica temporala
Neo se trezi in matricea energetica temporala. Stia ca trebuie sa ajunga cat mai repede intr-una din pozitiile diagonalei secundare de unde va fi absorbit instantaneu in alt plan. Isi consulta aparatul de buzunar:
Dimensiunea matricei: Pozitia ta: Numarul de elemente ale sirului de pasi: Sir de pasi: |
Un element al sirului de pasi este numarul de pasi ce trebuie facuti pe directia verticala daca numarul are o pozitie impara in sir sau pe directie orizontala daca pozitia sa in sir este un numar par. Pe exemplul dat, lui Neo i se sugereaza sa mearga spre diagonala secundara 3 pozitii pe verticala, 2 pe orizontala, 1 pe verticala, 1 pe orizontala si inca 3 pe verticala.
Matricea contine pe fiecare pozitie valori energetice pozitive, nule sau negative.
In momentul intrarii lui Neo in matricea energetica temporala, campul emis de diagonala secundara creaza un soi de 'unde' paralele cu ea, care se propaga spre pozitia lui Neo.
Aceste unde pot sa-i fie fatale eroului daca toate elementele ce formeaza una dintre unde sunt negative.
a) Sa se verifice daca Neo este in pericol.
b) In cazul in care undele nu sunt un pericol, Neo urmeaza comenzile primite.
Verificati daca informatiile primite il duc pe Neo la diagonala secundara. In caz afirmativ, afisati totalul energetic datorat traseului urmat.
Date de intrare
Fisierul de intrare NEO.IN contine:
pe prima linie un numar natural n reprezentand dimensiunea matricei patratice
pe a doua linie doua numere reprezentand linia si coloana pozitiei in care se afla Neo
pe a treia linie este numarul de elemente al sirului de pasi.
pe a patra linie se afla un sir de valori naturale (pot fi si nule) separate prin spatii ce reprezinta sirul de pasi
pe ultimele n linii se afla elementele matricei, fiecare linie continand n numere intregi separate prin spatii
Date de iesire
Fisierul de iesire NEO.OUT va contine:
pe prima linie, corespunzator cerintei de la punctul a) se va afisa un mesaj: "PERICOL" sau "TRECERE LIBERA
pe a doua linie se va afisa mesajul: "NEO NU A AJUNS LA DIAGONALA SECUNDARA" daca eroul nostru nu ajunge la diagonala secundara, in caz contrar se afiseaza mesajul "NEO A AJUNS LA DIAGONALA SECUNDARA
daca eroul ajunge la destinatie, va exista si a treia linie in fisier continand numarul intreg reprezentand suma energiilor acumulate sau pierdute pe traseul efectuat in matricea energetica temporala. Daca suma este un numar pozitiv atunci Neo acumuleaza energie, altfel pierde.
Restrictii si precizari:
≤ n ≤ 100
Neo se trezeste in matrice intr-o pozitie care nu se afla nici pe diagonala principala, nici pe undele fatale lui
Elementele matricei sunt numere intregi de trei cifre; cele de pe diagonala secundara au valoare nula
In cazul in care calculatorul indica mai multe pozitii de deplasare decat sunt necesare, traseul se considera a fi incheiat in momentul in care Neo ajunge la destinatia dorita, deci indicatia se poate considera ca fiind corecta
Toate mesajele din fisierul de iesire vor fi scrise cu majuscule, cuvintele fiind separate cu un spatiu, exact ca si in exemple
Exemple
Fisierul NEO.IN corespunzator exemplului de mai sus este:
Corespunzator acestui fisier obtinem matricea:
Celula in care se trezeste Neo este hasurata, iar undele emise de diagonala secundara sunt desenate.
NEO.OUT TRECERE LIBERA NEO A AJUNS LA DIAGONALA SECUNDARA |
ExplicatieNeo nu este in pericol si urmeaza traseul care il duce exact la destinatie (9+4+5+8+8+9-1-3-1-3=35) |
Daca pe exemplul de sus sirul directiilor este: NEO.OUT TRECERE LIBERA NEO A AJUNS LA DIAGONALA SECUNDARA |
ExplicatieChiar daca sunt mai multe indicatii de deplasare, daca Neo ajunge la diagonala secundara, solutia este corecta. |
Daca elementul de pe linia 6 si coloana 5 din matricea din exemplul de mai sus are o valoare cu semn negativ: NEO.OUT PERICOL |
ExplicatieDaca acea valoare devine negativa, intreaga diagonala ce trece prin el si este paralela cu diagonala secundara va avea numai valori negative, ceea ce inseamna ca Neo este in pericol. |
Daca pe exemplul de sus sirul directiilor este: NEO.OUT TRECERE LIBERA NEO NU A AJUNS LA DIAGONALA SECUNDARA |
ExplicatieDesi Neo nu este in pericol si merge mereu spre diagonala secundara, urmand directiile primite, nu ajunge acolo. |
Timp maxim de executie/test : 1 secunda
Copyright © 2024 - Toate drepturile rezervate