Обработка математики: 100%

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 (1N,K,L100). Во второй строке содержится N целых чисел (начальное состояние списка), все числа по модулю не превышают 10000. В третьей строке содержится число X (0X2000000000).
Вывод
В выходной файл вывести список после выполнения X операций, разделяя числа одним пробелом.

Пример ввода

5 2 1
1 2 3 4 5
10

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

5 1 2 3 4
loading