O grădină este împărțită în parcele pătrate identice, dispuse pe rânduri succesive. Toate parcelele de pe un rând conțin același tip de plante (doar flori sau doar gazon) și oricare două rânduri alăturate conțin tipuri diferite de plante, pe primul rând fiind gazon. Pentru fiecare parcelă se memorează înălțimea acesteia, egală cu înălțimea medie a plantelor conținute, exprimată în decimetri. Pentru a pune în valoare florile, fiecare parcelă cu flori trebuie să fie mai înaltă cu cel puțin un decimetru decât oricare dintre parcelele cu gazon de pe rândul vecin anterior. S-a hotărât tunderea parcelelor cu gazon prea înalte, astfel încât ele să fie aduse la înălțimea maximă permisă.
Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual în formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
Cerința
10 puncte
Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,10²], m și n, apoi elementele unui tablou bidimensional cu m linii și n coloane, numere naturale din intervalul [2,10], reprezentând înălțimile parcelelor, în ordinea dispunerii acestora în grădină, rând după rând, și pe fiecare rând de la stânga la dreapta. Programul modifică apoi tabloul în memorie corespunzător situației terenului după tunderea gazonului și afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.
Exemplu:
pentru m=4, n=6 și tabloul
6 2 3 7 9 4
7 8 5 9 8 5
8 7 2 6 2 9
7 2 5 9 3 8
se obține tabloul
4 2 3 4 4 4
7 8 5 9 8 5
1 1 1 1 1 1
7 2 5 9 3 8
(10p.)
Arată baremul
SUBIECTUL al III-lea / 2.
Pentru program corect - 10p.
-declarare a unei variabile care să permită memorarea unui tablou bidimensional - 1p.
-citire a datelor - 1p.
-modificare a tabloului conform cerinței (*) - 6p.
-afișare a datelor în formatul cerut - 1p.
-declarare a variabilelor de tipuri simple, corectitudine globală a programului¹⁾ - 1p.
(*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui rând/a unei parcele cu flori/gazon, algoritm de bază pentru determinarea unei valori minime/maxime pentru o parcelă cu gazon dintr-o serie de valori, parcele suport parcurse pe un rând pentru determinarea valorii minime/maxime, identificare a unui rând cu gazon vecin anterior unui rând cu flori, înălțimi suport păstrate/actualizate pe un rând cu gazon, perechi de rânduri suport verificate/actualizate) conform cerinței.
1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.