Să considerăm o tablă de joc constituită din N*N
pătrate organizate sub forma unei matrice cu N
linii şi N
coloane. În fiecare pătrat este scris un număr natural. La începutul jocului, în colţul din stânga-sus al tablei se află un pion. Acest pion trebuie să ajungă în colţul din dreapta-jos al tablei. La un pas pionul se poate mişca din poziţia sa curentă (x, y)
fie în pătratul de dedesubt (x+1, y)
(pe linia următoare, aceeaşi coloană), fie în pătratul din dreapta poziţiei sale (x, y+1)
(aceeaşi linie, coloana următoare), dar nu poate fi plasat într-un pătrat care conţine valoarea 0
. Drumul unui pion este constituit din toate pătratele prin care trece pionul pentru a ajunge din colţul stânga-sus până în colţul din dreapta-jos al tablei. Costul unui drum este definit ca produsul numerelor aflate în pătratele situate pe drum. Costul unui drum este optimal dacă numărul de zerouri aflate la sfârşitul scrierii sale în baza 10
este minim.
Cerința
Scrieţi un program care să determine numărul de zerouri aflate la sfârşitul costului optimal.
Date de intrare
Fișierul de intrare zero1.in
conţine pe prima linie numărul natural N
care reprezintă dimensiunea tablei de joc. Fiecare dintre următoarele N
linii conţine câte N
numere naturale separate prin câte un spaţiu reprezentând tabla de joc.
Date de ieșire
Fișierul de ieșire zero1.out
va conţine o singură linie pe care va fi scris numărul de zerouri aflate la sfârşitul costului optimal.
Restricții și precizări
1 ≤ N ≤ 500
- Pe tabla de joc se află numere naturale mai mici sau egale cu
1.000.000
. - Pentru datele de test există întotdeauna soluţie.
Exemplu:
zero1.in
4 1 3 0 0 0 8 2 25 6 5 0 5 0 15 7 4
zero1.out
2
Explicație
Drumul optimal trece prin 1
, 3
, 8
, 5
, 15
, 7
, 4
.
Produsul elementelor situate pe acest drum se termină cu două zerouri.
O altă soluţie de a ajunge în colţul dreapta-jos ar fi fost 1
, 3
, 8
, 2
, 25
, 5
, 4
, dar numărul de zerouri de la sfârşitul produsului elementelor de pe acest drum este 3
.