Triunghi

Time limit: 2s Memory limit: 512MB Input: Output:

Se dă o matrice AA de numere naturale, formată din NN linii și MM coloane. Liniile sunt numerotate de sus în jos de la 00 la N1N - 1, iar coloanele de la stânga la dreapta de la 00 la M1M - 1.

Numim triunghiul de mărime KK care începe în celula (i,j)(i, j) mulțimea celulelor la care se poate ajunge plecând din (i,j)(i, j) și efectuând cel mult K1K - 1 pași în care ne deplasăm cu o celulă în sus sau la dreapta.

Cerință

Pentru fiecare celulă (i,j)(i, j) cu K1i<NK - 1 \leq i < N și 0j<MK+10 \leq j < M - K + 1, vrem să aflăm:

  • Valoarea maximă din triunghiul de mărime KK care începe în celula (i,j)(i, j);
  • De câte ori apare valoarea maximă din triunghiul de mărime KK care începe în celula (i,j)(i, j) în respectivul triunghi.

Date de intrare

Pe prima linie se găsesc numerele N,MN, M și KK. Fiecare din următoarele NN linii conține câte MM numere fiecare. Al jj-lea număr de pe a ii-a astfel de linie reprezintă Ai,jA_{i, j}.

Date de ieșire

Se vor afișa două matrice de dimensiuni (NK+1)×(MK+1)(N - K + 1) \times (M - K + 1).

Pe fiecare din primele NK+1N - K + 1 linii se vor afla câte MK+1M - K + 1 numere naturale. Al jj-lea număr de pe a ii-a astfel de linie este valoarea maximă din triunghiul de mărime KK care începe în celula (iK+1,j)(i - K + 1, j).

Pe fiecare din următoarele NK+1N - K + 1 linii se vor afla câte MK+1M - K + 1 numere naturale. Al jj-lea număr de pe a ii-a astfel de linie este numărul de apariții ale valorii maxime din triunghiul de mărime KK care începe în celula (iK+1,j)(i - K + 1, j) în acest triunghi.

Restricții și precizări

  • 1N,M3 0001 \leq N, M \leq 3 \ 000
  • 1Kmin(N,M)1 \leq K \leq min(N, M)
  • 0Ai,j1 000 0000 \leq A_{i, j} \leq 1 \ 000 \ 000 pentru 0i<N0 \leq i < N și 0j<M0 \leq j < M
  • Pentru afișarea corectă a maximului din fiecare triunghi se obține 40%40\% din punctaj.
  • Pentru a face citirea și afișarea mai rapidă, recomandăm să folosiți linia: ios_base::sync_with_stdio(false)
# Punctaj Restricții
1 8 1N,M201 \leq N, M \leq 20
2 15 1N,M1001 \leq N, M \leq 100
3 13 Ai,j{0,1}A_{i, j} \in \{0, 1\} pentru 0i<N0 \leq i < N și 0j<M0 \leq j < M
4 28 1N,M1 5001 \leq N, M \leq 1 \ 500
5 36 Fără restricții suplimentare.

Exemplul 1

stdin

4 4 2
1 2 6 14
12 3 13 5
11 4 7 8
10 16 9 15

stdout

12 13 13
12 7 13
16 16 15
1 1 1
1 1 1
1 1 1

Explicație

De exemplu, triunghiul de mărime =2= 2 care începe în (1,1)(1, 1) este:
33
4 74 \ 7
Valoarea maxima este 77 și apare o singură dată.

În fapt, valoarea maximă din fiecare dintre cele 3×3=93 \times 3 = 9 triunghiuri vizate este unică.

Exemplul 2

stdin

2 3 2
4 5 3
4 4 5

stdout

4 5
3 2

Explicație

Sunt vizate două triunghiuri de mărime 22.

Primul începe în (1,0)(1, 0):
44
4 44 \ 4
Valoarea maximă este 44 și apare de 33 ori.

Al doilea începe în (1,1)(1, 1):
55
4 54 \ 5
Valoarea maximă este 55 și apare de 22 ori.

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