Piet, çeşitli nedenlerden dolayı ilginç bir programlama dilidir. Bugün bir sebep üzerinde duracağız: roll komutu. Roll komutu aslen PostScript'teydi ve yığını işlemenin güçlü bir yoludur.
Roll komutu yığının en iyi iki öğesini açar ve parametre olarak kullanır. İlk attığımız değeri turns
, ikincisini arayacağız depth
. N derinliğine dönüş yığının en üst elemanını alır, yığındaki n'inci eleman yapar ve üstündeki elemanların her birini bir yukarı taşır. Eğer turns
negatif ise bu ters yönde yapılır. Yani, n'inci eleman yukarı taşınır ve diğer elemanlar aşağı taşınır. Bu tekrarlanır abs(turns)
.
Meydan okuma
Yığını alan ve rulo yürüttükten sonra bu yığını döndüren bir program veya işlev yazın.
kurallar
- Giriş ve çıkış, bir liste, dizi, sınırlayıcılı bir dize, bir kerede bir öğeye geçirilmiş veya başka herhangi bir makul biçimde olabilir. Çıktı, girdi ile aynı formatta olmalıdır.
depth
asla negatif olmayacak ve asla yığının uzunluğundan daha büyük olmayacaktır.- Giriş yığını her zaman en az iki öğe içerir.
- Bu kod-golf yani her dilde en kısa cevap kazanır. Bu nedenle, bir yanıtı kabul etmeyeceğim.
- Standart boşluklar yasaktır.
Test Durumları
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