Klepsydra o największej sumie

Zadanie 9 z 14 · rozdział 13Trudność: 2 z 3macierzeprzeszukiwanie

Treść zadania

Wczytaj macierz n×m. Klepsydra to 7 pól wyciętych z dowolnego kwadratu 3×3 macierzy: cały górny wiersz, środkowe pole i cały dolny wiersz.

a b c
  d
e f g

Suma klepsydry to $a + b + c + d + e + f + g$. Wypisz największą sumę spośród wszystkich klepsydr w macierzy.

Dane wejściowe

  • 1. linia: n m — liczba wierszy i kolumn (w jednej linii)
  • następnie n linii po m liczb całkowitych (mogą być ujemne)

Dane wyjściowe

Jedna liczba całkowita: największa suma klepsydry.

Ograniczenia

  • 3 ≤ n, m ≤ 20

Uwagi

  • Gdy wszystkie liczby są ujemne, wynik też jest ujemny — nie zaczynaj szukania maksimum od 0.

Przykład

Wejście
4 4
7 4 2 0
4 8 10 8
3 6 7 6
3 9 19 14
Wyjście
75

Największą sumę ma klepsydra ze środkiem w polu o wartości 7: $8 + 10 + 8 + 7 + 9 + 19 + 14 = 75$.

Zasady obowiązujące w rozdziale 13

Zadania w tym rozdziale ćwiczą pracę z listami dwuwymiarowymi (macierzami): tworzenie, wczytywanie, przechodzenie po wierszach i kolumnach oraz przekształcanie.
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).

Konwencje wspólne:

  • Dane wczytuj dokładnie w kolejności podanej w sekcji Wejście.
  • Wiersz macierzy na wejściu to jedna linia z liczbami oddzielonymi spacjami — wczytaj całą linię i rozbij ją po spacjach (input().split()).
  • W wyjściu macierzy: każdy wiersz w osobnej linii, elementy oddzielone pojedynczą spacją.
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
3 3
1 1 1
1 1 1
1 1 1
Oczekiwane wyjście
7

Test 2

Nie uruchomiono
Wejście
3 3
1 2 3
0 4 0
7 6 5
Oczekiwane wyjście
28

Test 3

Nie uruchomiono
Wejście
3 4
-1 -2 -3 -4
-5 -6 -7 -8
-9 -10 -11 -12
Oczekiwane wyjście
-42

Test 4

Nie uruchomiono
Wejście
4 5
1 1 1 0 0
0 1 0 0 0
1 1 1 0 0
0 0 2 4 4
Oczekiwane wyjście
10

Test 5

Nie uruchomiono
Wejście
5 3
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
Oczekiwane wyjście
77
Uruchom z własnymi danymi