Piet jest interesującym językiem programowania z wielu powodów. Dzisiaj skupimy się na jednym celu: poleceniu rzutu . Polecenie roll pochodziło z PostScript i jest potężnym sposobem na manipulowanie stosem.
Polecenie roll wyświetla dwa górne elementy stosu i używa ich jako parametrów. Nazwiemy pierwszą wartość pop up turns
i drugą depth
. Obrót do głębokości n zajmie najwyższy element stosu, uczyni go n-tym elementem stosu i przesunie każdy z elementów powyżej jednego o jeden. Jeśli turns
jest ujemne, dzieje się to w przeciwnym kierunku. Oznacza to, że n-ty element jest przenoszony na górę, a pozostałe elementy są przenoszone w dół. To się powtarza abs(turns)
.
Wyzwanie
Napisz program lub funkcję, która pobiera stos i zwraca ten stos po wykonaniu rzutu.
Zasady
- Dane wejściowe i wyjściowe mogą być w postaci listy, tablicy, ciągu z ogranicznikiem, przekazywanych w jednym elemencie na raz lub w innym rozsądnym formacie. Dane wyjściowe muszą być w tym samym formacie co dane wejściowe.
depth
nigdy nie będzie ujemny i nigdy nie będzie większy niż długość stosu.- Stos wejściowy zawsze będzie zawierał co najmniej dwa elementy.
- To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w każdym języku. W związku z tym nie przyjmę odpowiedzi.
- Standardowe luki są zabronione.
Przypadki testowe
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