#1142
Lasere
Se consideră un teren reprezentat printr-o matrice cu n
linii şi n
coloane având elemente numere naturale. În fiecare element al matricei este memorată înălţimea zonei de teren corespunzătoare ca poziţie elementului respectiv. Pe acest teren sunt amplasate m
lasere, în poziţii cunoscute. Un laser este îndreptat spre unul dintre cele 4
puncte cardinale, codificate prin numere astfel: Nord
prin valoarea 1
, Est
prin valoarea 2
, Sud
prin valoarea 3
şi respectiv Vest
prin valoarea 4
. Fiecare laser va executa o singură tragere şi ca urmare va scădea cu 1
valorile tuturor elementelor din matrice din direcţia sa de tragere, exceptând poziţia laserului respectiv.
După efectuarea tuturor tragerilor, se caută poziţiile tuturor gropilor şi ale tranşeelor.
Numim groapă un element din matrice pentru care toate cele 8
elemente învecinate pe linie, coloană sau diagonale au valori mai mari sau egale decât el.
Numim tranşee o secvenţă maximală formată din două sau mai multe gropi situate pe aceeaşi linie, pe coloane consecutive. Secvenţa se numeşte maximală dacă nu mai poate fi prelungită la niciunul dintre capete.
Cunoscând configuraţia terenului şi amplasarea laserelor, să se rezolve una dintre următoarele două cerinţe:
1. să se determine numărul de gropi din teren, după executarea tragerilor;
2. să se determine numărul de tranşee existente, după executarea tragerilor.
OJI 2015, Clasa a VII-a
Problema | Lasere | Operații I/O |
lasere.in /lasere.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 8 MB
/
Stivă 4 MB
|
Id soluție | #2660053 | Utilizator | |
Fișier | lasere.cpp | Dimensiune | 3.04 KB |
Data încărcării | 18 Iunie 2016, 01:11 | Scor / rezultat | 100 puncte |
lasere.cpp: In function 'int main()': lasere.cpp:104:23: warning: array subscript is above array bounds [-Warray-bounds] if(lasere[i][3]==1) ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 5 | 5 | ||
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | OK. | 5 | 5 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0.008 secunde | OK. | 5 | 5 | ||
5 | 0 secunde | OK. | 5 | 5 | ||
6 | 0 secunde | OK. | 5 | 5 | ||
7 | 0 secunde | OK. | 5 | 5 | ||
8 | 0 secunde | OK. | 5 | 5 | ||
9 | 0 secunde | OK. | 5 | 5 | ||
10 | 0 secunde | OK. | 5 | 5 | ||
11 | 0.004 secunde | OK. | 5 | 5 | ||
12 | 0.008 secunde | OK. | 5 | 5 | ||
13 | 0.004 secunde | OK. | 5 | 5 | ||
14 | 0 secunde | OK. | 10 | 10 | ||
15 | 0.004 secunde | OK. | 10 | 10 | ||
16 | 0 secunde | OK. | 10 | 10 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Lasere face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.