mexc

Time limit: 0.2s Memory limit: 64MB Input: mexc.in Output: mexc.out

Proaspăt scăpat de conflictele sale cu poliţia, Gigel vrea să organizeze o excursie la munte. El a descoperit o suprafaţă dreptunghiulară de NN metri lăţime şi MM metri lungime, împărţită în NMN \cdot M suprafeţe pătratice elementare de latură 11 şi cu laturile paralele cu laturile suprafeţei. Pentru simplitate, ne vom referi la ea ca la o matrice notată cu AA având NN linii (numerotate de la 11 la NN) şi MM coloane (numerotate de la 11 la MM). Pentru fiecare pătrat (i,j)(i, j) se cunoaşte înălţimea AijA_{ij} la care acesta se află.

Dintr-un pătrat (i,j)(i, j), Gigel se poate deplasa, în interiorul suprafeţei, în oricare din pătratele: (i,j+1)(i, j+1), (i,j1)(i, j-1), (i1,j)(i-1, j), (i+1,j)(i+1, j), în cazul în care acestea există. Un drum valid în viziunea lui Gigel este un drum care pleacă din orice pătrat (x,y)(x, y) şi are proprietăţile:

  • înălţimea fiecărui pătrat (i,j)(i, j) prin care trece, satisface relaţia: AijAxyDA_{ij} \geq A_{xy} - D (DD fiind o constantă dată);
  • pătratul (xf,yf)(x_f, y_f) în care drumul se termină (denumit destinaţie finală), are înălţimea mai mare sau egală cu înălţimea pătratului (x,y) Axf yfAxy(x, y) \ A_{x_f \ y_f} \geq A_{xy}.

Cerinţă

Să se scrie un program care să-l ajute pe Gigel să afle, pentru fiecare pătrat iniţial, câte destinaţii finale distincte există pentru drumurile valide care pornesc din acel pătrat.

Date de intrare

Fişierul de intrare mexc.in conţine pe prima linie trei numere naturale N M DN \ M \ D, separate prin câte un spaţiu, cu semnificaţia din enunţ. Fiecare dintre următoarele NN linii vor conţine câte MM numere naturale, separate prin câte un spaţiu, reprezentând valorile elementelor matricei AA.

Date de ieșire

Fişierul de ieşire mexc.out va conţine NN linii pe care se vor scrie câte MM numere naturale, separate prin câte un spaţiu, numărul ii de pe linia jj din fişierul mexc.out reprezentând numărul de destinaţii finale distincte care pot fi atinse pe drumuri valide ce pornesc din pătratul (i,j)(i, j).

Restricții și precizări

  • 1N,M8001 \leq N, M \leq 800
  • 0D100 0000 \leq D \leq 100 \ 000
  • 0Aij100 0000 \leq A_{ij} \leq 100 \ 000
  • Destinaţia finală poate să coincidă cu punctul de plecare. Un drum format dintr-un singur pătrăţel este considerat valid.

Exemplu

mexc.in

5 6 2
7 7 7 7 7 7
7 3 3 3 3 7
7 3 5 6 3 7
7 3 3 3 3 7
7 7 7 7 7 10

mexc.out

18 18 18 18 18 18
18 30 30 30 30 18
18 30 20 1 30 18
18 30 30 30 30 18
18 18 18 18 18 1

Explicație

Pentru pătrăţelele de înălţime 77 destinaţia finală poate fi orice pătrăţel de înălţime 77 şi pătrăţelul de înălţime 1010.
Pentru pătrăţelele de înălţime 33 destinaţia finală poate fi orice pătrăţel.
Pentru pătrăţelul de înălţime 55 destinaţia finală poate fi orice pătrăţel mai puţin cele de înălţime 33.
Pentru pătrăţelul de înălţime 66 destinaţia finală poate fi doar el însuşi (nu poate trece prin pătrăţelele de înălţime 33 datorită primei restricţii)
Pentru pătrăţelul de înălţime 1010 destinaţia finală poate fi doar el însuşi.

Log in or sign up to be able to send submissions!