Rotacja w lewo / prawo

Zadanie 12 z 21 · rozdział 9Trudność: 2 z 3listyrotacjamodulo

Treść zadania

Wczytaj listę n liczb całkowitych, kierunek rotacji oraz liczbę k. Przesuń cyklicznie elementy listy o k pozycji:

  • kierunek = 0 — w lewo (pierwszy element trafia na koniec),
  • kierunek = 1 — w prawo (ostatni element trafia na początek).

Wypisz listę po rotacji.

Dane wejściowe

  • 1. linia: liczba elementów n
  • 2. linia: n liczb całkowitych oddzielonych spacjami
  • 3. linia: kierunek (0 albo 1)
  • 4. linia: liczba przesunięć k

Dane wyjściowe

Jedna linia: lista po rotacji, w formacie print(lista).

Ograniczenia

  • $n \ge 1$
  • $k \ge 0$ (k może być większe od n)

Uwagi

  • Rotacja o n pozycji nie zmienia listy, więc wystarczy przesunąć ją o $k \bmod n$ pozycji.

Przykład

Wejście
7
5 27 6 2 1 10 8
0
2
Wyjście
[6, 2, 1, 10, 8, 5, 27]

Potrzebujesz teorii?

Zasady obowiązujące w rozdziale 9

Zadania w tym rozdziale ćwiczą podstawowe operacje na listach: wczytywanie, przechodzenie pętlą, modyfikowanie elementów, wyszukiwanie i zliczanie.

Konwencje wspólne:

  • Każde zadanie (i każdy podpunkt) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
  • Lista na wejściu zajmuje dwie linie: w 1. linii jest liczba elementów n, a w 2. linii — n liczb oddzielonych pojedynczymi spacjami. Dodatkowe dane (np. szukany klucz) są w kolejnych liniach, po jednej wartości w linii.
  • Taką listę wczytasz np. tak:
    ```python
    n = int(input())
    lista = [int(x) for x in input().split()]
    `
  • Gdy wynikiem jest lista, wypisz ją instrukcją print(lista). Python wypisze ją w nawiasach kwadratowych, z elementami oddzielonymi przecinkiem i spacją, np. [4, 10, 8]. Pusta lista to [].
  • Jeśli zadanie mówi „oddzielone spacją” — użyj pojedynczej spacji.
  • Indeksy elementów liczymy od 0.
  • 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
4
1 2 3 4
0
1
Oczekiwane wyjście
[2, 3, 4, 1]

Test 2

Nie uruchomiono
Wejście
5
10 20 30 40 50
1
2
Oczekiwane wyjście
[40, 50, 10, 20, 30]

Test 3

Nie uruchomiono
Wejście
3
7 8 9
1
0
Oczekiwane wyjście
[7, 8, 9]

Test 4

Nie uruchomiono
Wejście
1
42
0
5
Oczekiwane wyjście
[42]

Test 5

Nie uruchomiono
Wejście
4
1 2 3 4
1
6
Oczekiwane wyjście
[3, 4, 1, 2]

Test 6

Nie uruchomiono
Wejście
6
1 2 3 4 5 6
0
8
Oczekiwane wyjście
[3, 4, 5, 6, 1, 2]
Uruchom z własnymi danymi