Wypisanie elementów macierzy spiralnie

Zadanie 8 z 14 · rozdział 13Trudność: 2 z 3macierzespirala

Treść zadania

Wczytaj macierz n×m i wypisz jej elementy spiralnie, zgodnie z ruchem wskazówek zegara: zacznij od lewego górnego rogu, idź w prawo po pierwszym wierszu, potem w dół po ostatniej kolumnie, w lewo po ostatnim wierszu, w górę po pierwszej kolumnie i tak dalej, aż do odczytania wszystkich elementów.

Dane wejściowe

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

Dane wyjściowe

Jedna linia: wszystkie elementy w kolejności spiralnej, oddzielone spacjami.

Ograniczenia

  • 1 ≤ n, m ≤ 20

Uwagi

  • Macierz nie musi być kwadratowa — sprawdź swój program także dla jednego wiersza i dla jednej kolumny.

Przykład

Wejście
3 3
1 2 3
4 5 6
7 8 9
Wyjście
1 2 3 6 9 8 7 4 5
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
2 3
1 2 3
4 5 6
Oczekiwane wyjście
1 2 3 6 5 4

Test 2

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

Test 3

Nie uruchomiono
Wejście
1 1
42
Oczekiwane wyjście
42

Test 4

Nie uruchomiono
Wejście
1 4
1 2 3 4
Oczekiwane wyjście
1 2 3 4

Test 5

Nie uruchomiono
Wejście
4 1
5
6
7
8
Oczekiwane wyjście
5 6 7 8

Test 6

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

Test 7

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