Текст задачи:
Напишите эффективную программу, которая будет циклически сдвигать заданный массив на k элементов вправо. Дополнительные массивы и рекурсию не использовать.
Входные данные
На вход программе сначала подаются значения n100 — количество элементов в массиве и k100. В следующей строке входных данных расположены сами элементы массива — целые числа, по модулю не превосходящие 30 000.
Выходные данные
Выдайте значения элементов массива после выполнения указанной операции.
Примеры
входные данные
5 3
5 4 3 2 1
выходные данные
3 2 1 5 4
Перепробовал, много разных кодов:
n, m = input().split() n = int(n) k = int(m) array = input().split() for i in range(len(array)): array[i] = int(array[i]) k=k%len(array) print(array[-k:] + array[:-k])
n, m = input().split() n = int(n) m = int(m) arr = input().split() for i in range(len(arr)): arr[i] = int(arr[i]) z = 0 while z < m-1: x = arr.pop(0) print(x) arr.append(x) z+= 1 print(arr)
n, m = input().split()
n = int(n)
k = int(m)
array = input().split()
for i in range(len(array)):
array[i] = int(array[i])
k=k%len(array)
if k==len(array) or k == 0:
print(array)
else:
c = n - k
while c < n:
array.append(array[c])
c+=1
c = n - k
while c>=0:
array[c+k]=array[c]
c-=1
c = n - k
i = k - 1
while c < n:
array[i] = array.pop()
c+=1
i-=1
print(array)
Пишет - неправильный формат вывода.
В чем проблема? Кроме того, что неправильный формат) Где ошибка в коде. Или может я не так понял задание?