Marele erou Ben10 se află din nou în postura de a salva lumea. De data aceasta el trebuie să dezamorseze o bombă de mare putere, a cărei explozie ar putea distruge omenirea. Dificultatea sarcinii constă în faptul că bomba este protejată printr-un dispozitiv complicat, cu cifru, compus din butoane aşezate sub forma unui tablou cu linii şi coloane, fiecare buton având înscris un număr natural, aşa cum se vede în .
Dispozitivul conţine mai multe rame mobile (reprezentate în figură prin pătrate concentrice haşurate diferit), care se pot roti cu , , sau de grade spre stânga sau spre dreapta, modificând astfel modul de dispunere a numerelor înscrise pe butoanele dispozitivului. Pentru exemplul din , avem un număr de rame, reprezentate în figură prin culori de fond diferite.
Bomba se dezamorsează dacă suma elementelor de pe prima linie (cea din nord) a fiecărei rame este maximă (zona haşurată din ). Convenim să numim această porţiune a tabloului zona de nord.
Cerinţă
Scrieţi un program care să determine suma elementelor din zona de nord a tabloului, atunci când ramele cifrului au fost aduse în poziţia ce dezamorsează bomba, precum şi configuraţia tabloului.
Date de intrare
Fişierul de intrare cifru.in
conţine:
Pe prima linie numărul natural , reprezentând numărul liniilor şi coloanelor tabloului.
Pe fiecare din următoarele linii se află câte numere naturale, separate prin spaţiu, reprezentând numerele înscrise pe butoanele dispozitivului.
Date de ieşire
Fişierul de ieşire cifru.out
va conţine pe prima linie un număr natural reprezentând suma maximă posibil de obţinut în zona de nord a tabloului. Pe următoarele linii se vor afişa elementele tabloului obţinut prin rotaţia ramelor în poziţia ce dezamorsează bomba (câte elemente separate prin câte un spaţiu).
Restricţii şi precizări
- Numerele înscrise pe butoanele cifrului sunt numere naturale între şi .
- O ramă este compusă din cel puţin linii şi coloane.
- Se garantează că, pentru fiecare ramă, suma maximă se poate obţine pe o singură latură.
Exemplu
cifru.in
5
5 1 1 1 4
5 0 0 0 2
5 1 0 2 2
5 2 3 4 2
7 3 3 3 8
cifru.out
36
7 5 5 5 5
3 4 3 2 1
3 2 0 1 1
3 0 0 0 1
8 2 2 2 4
Explicaţie
Cifrul din exemplu este compus din două rame. Prima ramă, cea exterioară, a fost rotită cu de grade spre stânga, iar a doua ramă a fost rotită cu de grade spre stânga sau spre dreapta.
Suma elementelor îngroşate este , fiind cea mai mare sumă posibil de obţinut prin rotirea în toate modurile a celor două rame.