Datorită faptului că deşertul Sahara se extinde tot mai mult în fiecare an, statele lumii au hotărât să reducă acest proces. Chiar mai mult, specialiştii au demonstrat că la câţiva metri sub stratul de nisip se ascund zăcăminte importante de apă şi au hotărât împădurirea acestui deşert.
Pentru simplificare, să considerăm reprezentarea hărţii deşertului ca fiind o matrice cu linii şi coloane. În fiecare element al matricei poate exista un singur copac.
Se mai ştie că datorită condiţiilor climaterice extreme un copac nou plantat nu ar rezista decât dacă ar fi învecinat cu cel puţin alţi doi copaci existenţi. Deci, în procesul de împădurire, în fiecare zi se plantează copaci care pot rezista.
Cerinţă
Scrieţi un program care să determine dacă deşertul poate fi complet împădurit sau nu. În caz afirmativ se cere numărul minim de zile în care se poate realiza împădurirea, altfel se cere numărul minim de zile după care se opreşte împădurirea, urmat pe linia următoare de mesajul IMPOSIBIL
.
Date de intrare
Datele se citesc din fişierul de intrare copaci.in
care are următoarea structură:
- pe prima linie sunt scrise două numere naturale şi , separate printr-un spaţiu, reprezentând numărul de linii, respectiv numărul de coloane ale matricei;
- pe fiecare dintre următoarele linii sunt scrise câte numere naturale separate prin spaţii; al -lea element de pe linia este dacă poziţia de pe linia şi coloana de pe hartă este neocupată sau este dacă poziţia respectivă este ocupată de un copac.
Date de ieșire
Rezultatul va fi afişat în fişierul de ieşire copaci.out
.
Dacă împădurirea poate avea loc, fişierul de ieşire conţine o singură linie pe care se află numărul minim de zile în care se poate realiza împădurirea.
Dacă împădurirea nu poate avea loc, atunci fişierul de ieşire conţine două linii. Pe prima linie va fi afişat numărul minim de zile după care se opreşte împădurirea, iar pe cea de a doua linie va fi afişat cu litere mari cuvântul IMPOSIBIL
.
Restricții și precizări
- În fiecare căsuţă a matricei poate exista doar un singur copac.
- Două poziţii se numesc vecine dacă ele sunt învecinate pe orizontală sau pe verticală.
Exemplul 1
copaci.in
5 6
1 0 1 0 1 1
1 0 0 0 0 0
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
copaci.out
9
Exemplul 2
copaci.in
3 3
1 0 0
0 0 0
1 0 0
copaci.out
1
IMPOSIBIL