Piet - интересный язык программирования по ряду причин. Сегодня мы остановимся на одной причине: команда крена . Команда roll была изначально написана на PostScript и является мощным способом манипулирования стеком.
Команда roll выводит на экран два верхних элемента стека и использует их в качестве параметров. Мы назовем первое значение попсовым, turns
а второе depth
. Поворот на глубину n займет самый верхний элемент стека, превратит его в n-й элемент стека и переместит каждый из элементов над ним на один. Если turns
отрицательно, это делается в противоположном направлении. То есть n-й элемент перемещается вверх, а остальные элементы перемещаются вниз. Это повторяется abs(turns)
раз.
Вызов
Напишите программу или функцию, которая берет стек и возвращает этот стек после выполнения броска.
правила
- Ввод и вывод могут быть в виде списка, массива, строки с разделителем, передаваемых по одному элементу за раз, или в любом другом приемлемом формате. Вывод должен быть в том же формате, что и ввод.
depth
никогда не будет отрицательным и никогда не будет больше длины стека.- Стек ввода всегда будет содержать как минимум два элемента.
- Это код-гольф, поэтому выигрывает самый короткий ответ на каждом языке. Таким образом, я не буду принимать ответ.
- Стандартные лазейки запрещены.
Тестовые случаи
in: out:
2
4
1 3
2 4
3 1
4 2
5 5
6 6
in: out:
-2
3
1 2
2 3
3 1
in: out:
-42
0
1 1
2 2
3 3
4 4
5 5