cetate

Time limit: 1.3s Memory limit: 64MB Input: cetate.in Output: cetate.outPoints by default: 10p

Cetatea Vizima din regatul Temeria poate fi reprezentată printr-o matrice cu NN linii și MM coloane, numerotate începând cu 11. Vizima este o cetate înfloritoare, fapt datorat numărului mare de negustori și meșteri prezenți. Din acest motiv, fiecărei celule îi este atribuit un profit corespunzător zonei respective. Regele Foltest dorește să reconstruiască zidurile cetății, dar cum războiul cu Imperiul Nilfgaard bate la ușă și resursele regatului sunt limitate, el trebuie să aleagă o porțiune pe care să o poată apăra, reprezentată ca o submatrice. O submatrice este identificată printr-o configurație de patru numere (i1,j1,i2,j2)(i_1, j_1, i_2, j_2) (1i1i2N1 \leq i_1 \leq i_2 \leq N, 1j1j2M1 \leq j_1 \leq j_2 \leq M), în această ordine, și este formată din elementele situate pe liniile consecutive i1,i1+1,,i2i_1, i_1+1, \ldots, i_2 și pe coloanele consecutive j1,j1+1,,j2j_1, j_1+1, \ldots, j_2 ale matricei prin care este reprezentată cetatea. Laturile submatricei sunt egale cu numărul de linii, respectiv de coloane din care a preluat elemente, iar profitul submatricei este suma valorilor din celulele sale.

Cerințe

Scrieți un program care, cunoscând matricea cetății și o valoare KK, determină:

  1. profitul maxim al unei submatrice cu laturile egale cu KK, precum și configurația prin care se identifică ea.
  2. profitul maxim al unei submatrice cu laturile cel mult egale cu KK, precum și configurația prin care se identifică ea.

Date de intrare

Fișierul de intrare cetate.in conține pe primul rând o valoare cc egală cu 11 sau 22, reprezentând cerința ce urmează a fi rezolvată. Următoarea linie conține în ordine NN, MM și KK, cu semnificația din enunț, iar pe următoarele NN linii se află câte MM numere, reprezentând valorile din matricea dată. Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu.

Date de ieșire

Fișierul de ieșire cetate.out va conține pe prima linie profitul maxim cerut, conform cerinței, iar pe a doua linie va conține 4 numere naturale, reprezentând configurația prin care se identifică submatricea obținută. Dacă există mai multe submatrice conform cerinței, se va lua în considerare cea pentru care configurația formată din cele 4 numere de mai sus este minim lexicografică.

Restricții și precizări

  • 1N,M4001 \leq N,M \leq 400
  • 1Kmin(N,M)1 \leq K \leq min(N,M)
  • Valorile date pentru matricea cetății se află în intervalul [109,109][-10^9, 10^9].
  • Pentru teste în valoare de 20 de puncte, c=1c=1, iar pentru restul testelor, în valoare de 70 de puncte, c=2c=2. Pentru teste în valoare de 8 puncte, c=1c=1 și 1N,M701 \leq N,M \leq 70. Pentru teste în valoare de 25 de puncte, c=2c=2 și 1N,M701 \leq N,M \leq 70.
  • Configurația (x1,x2,x3,x4)(x_1, x_2, x_3, x_4) este mai mică din punct de vedere lexicografic decât configurația (y1,y2,y3,y4)(y_1, y_2, y_3, y_4) dacă există pp astfel încât xp<ypx_p < y_p și x1=y1x_1 = y_1, x2=y2x_2 = y_2, \dots, xp1=yp1x_{p-1} = y_{p-1}.

Exemplul 1

cetate.in

1
3 4 3
-1 -1 -1 -1
-1 2 -1 -1
-1 -1 -1 -1

cetate.out

-6
1 1 3 3

Explicație

În acest exemplu, se rezolvă cerința 1. S-a determinat submatricea cu configurația (i1=1,j1=1,i2=3,j2=3)(i_1=1, j_1=1, i_2=3, j_2=3), formată din elementele aflate pe liniile 1, 2 și 3 și coloanele 1, 2 și 3. O altă submatrice cu profitul 6-6 este cea dată de configurația (1,2,3,4)(1,2,3,4), care însă este mai mare din punct de vedere lexicografic decât cea afișată, de aceea nu este o soluție acceptată.

Exemplul 2

cetate.in

2
3 4 3
-1 -1 -1 -1
-1 2 1 -1
-1 -1 -1 -1

cetate.out

3
2 2 2 3

Explicație

În acest exemplu, se rezolvă cerința 2. Au fost considerate toate submatricele cu laturile 11, 22 sau 33, iar submatricea găsită, cu laturile 11 și 22, este singura submatrice de profit maxim care respectă condițiile impuse de cerință.

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