Meydan okuma
Herhangi bir makul yöntemle girdi olarak size bir düzlemdeki karakterlerin ASCII-art gösterimi verilir. Bu sadece şunları içerir:
[a-z]hareketli karakterleri temsil eder. Her harf tahtada en fazla bir kez görünecektir.#taşınmaz duvarları temsil eden.boş alanı temsil eden
Örneğin:
abcdef.gh#..
.......ij.#.
#..#.......#
...#.#...###
.#.......#q#
.........###
Ayrıca, yerçekimi değişikliklerini temsil eden bir dize verilir. Bu sadece şunları içerir:
>sağa doğru çekimde bir değişikliği temsil eder<sola doğru çekimde bir değişikliği temsil eder^yukarı doğru yerçekimi değişikliğini temsil edenvaşağı doğru yerçekimi değişikliğini temsil eden
Örneğin:
v>^
Programınız, yerçekimindeki her değişikliği, tüm karakterler hareket etmeyi durdurana kadar (bir duvara veya başka bir karaktere çarpana kadar) simüle etmelidir. "Haritanın kenarından düşen" karakterler kalıcı olarak kaldırılır ve karakterler üst üste "istiflenebilir".
Bu örnekte, başında (aşağı doğru yerçekimi yoktur v), bu yüzden c, e, g, h, i, ve jharitanın altını düşer. Diğer tüm karakterler bir duvara çarpana kadar aşağı kayar ve haritayı şu şekilde bırakır:
.........#..
a..d......#.
#..#.f.....#
.b.#.#...###
.#.......#q#
.........###
Sonra, sağ taraftaki yerçekimine ( >) ilerliyoruz , bu da bizi bununla bırakıyor: aYığınların yanındaki nasıl olduğuna dikkat edin d.
.........#..
........ad#.
#..#......f#
..b#.#...###
.#.......#q#
.........###
Son olarak, yukarı doğru yerçekimi (taklit ^), sırasında ave bharita düşer.
.........#..
.........d#.
#..#......f#
...#.#...###
.#.......#q#
.........###
Göreviniz, yerçekimi kaydırmalarından sonra kalan karakterleri çıktılamaktır. Herhangi bir sırayla verilebilirler. Bu örnek için, herhangi bir permütasyon çıktısı verebilirsiniz dfq.
testcases
Aşağıdaki harita için:
abcde
.....
##.##
v = abde
v> = <nothing>
Aşağıdaki harita için:
######
#....#
abcdef
#.gh..
######
> = <nothing>
< = gh
^> = bcde
v< = bghef