printРабочее место участника

printЗадачи

87. Intel-Cycle-List

Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Для работы с “циклическим” списком из `N` целых чисел имеются две операции. Операция Top переставляет первый элемент списка в конец списка, а операция Bottom переставляет последний элемент списка в начало списка. В некоторой программе всегда выполняется сначала `K` операций Top, а затем `L` операций Bottom, потом снова `K` операций Top, затем `L` операций Bottom, и так далее. Так как число выполняемых операций над списком в данной программе может быть достаточно большим, то применение стандартных подпрограмм приведет к неэффективному расходу машинного времени. К счастью, в данном случае существует достаточно простой способ ускорить определение по числу выполненных операций конечного состояния списка. Напишите программу, которая для заданного списка, `K` и `L` определяет состояние списка после `X` выполненных элементарных операций.
Ввод
Во входном файле в первой строке содержатся натуральные числа `N`, `K` и `L` (`1≤N,K,L≤100`). Во второй строке содержится `N` целых чисел (начальное состояние списка), все числа по модулю не превышают 10000. В третьей строке содержится число `X` (`0≤X≤2000000000`).
Вывод
В выходной файл вывести список после выполнения `X` операций, разделяя числа одним пробелом.

Пример ввода

5 2 1
1 2 3 4 5
10

Пример вывода

5 1 2 3 4
loading