Cetatea Vizima din regatul Temeria poate fi reprezentată printr-o matrice cu linii și coloane, numerotate începând cu . 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 (, ), în această ordine, și este formată din elementele situate pe liniile consecutive și pe coloanele consecutive 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 , determină:
- profitul maxim al unei submatrice cu laturile egale cu , precum și configurația prin care se identifică ea.
- profitul maxim al unei submatrice cu laturile cel mult egale cu , 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 egală cu sau , reprezentând cerința ce urmează a fi rezolvată. Următoarea linie conține în ordine , și , cu semnificația din enunț, iar pe următoarele linii se află câte 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
- Valorile date pentru matricea cetății se află în intervalul .
- Pentru teste în valoare de 20 de puncte, , iar pentru restul testelor, în valoare de 70 de puncte, . Pentru teste în valoare de 8 puncte, și . Pentru teste în valoare de 25 de puncte, și .
- Configurația este mai mică din punct de vedere lexicografic decât configurația dacă există astfel încât și , , , .
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 , formată din elementele aflate pe liniile 1, 2 și 3 și coloanele 1, 2 și 3. O altă submatrice cu profitul este cea dată de configurația , 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 , sau , iar submatricea găsită, cu laturile și , este singura submatrice de profit maxim care respectă condițiile impuse de cerință.