チャレンジ
合理的な方法で、入力としてプレーン上の文字のASCIIアート表現が提供されます。これには以下のみが含まれます。
[a-z]可動文字を表します。すべての手紙は、せいぜい一度だけボードに表示されます。#不動の壁を表す.空きスペースを表す
例えば:
abcdef.gh#..
.......ij.#.
#..#.......#
...#.#...###
.#.......#q#
.........###
重力の変化を表す文字列も与えられます。これには以下のみが含まれます。
>右向きの重力への変化を表す<左向きの重力への変化を表す^上向きの重力への変化を表すv下向きの重力への変化を表す
例えば:
v>^
プログラムは、すべてのキャラクターが動きを止める(壁や他のキャラクターにぶつかる)まで、重力の各変化を順番にシミュレートする必要があります。「マップの端から落ちる」キャラクターは永久に削除され、キャラクターは互いの上に「積み重なる」ことができます。
この例では、開始時に(下向きの重力があるv)のでc、e、g、h、i、及びj地図の底から落ちます。他のすべてのキャラクターは壁にぶつかるまで下にスライドし、マップは次のようになります。
.........#..
a..d......#.
#..#.f.....#
.b.#.#...###
.#.......#q#
.........###
次に、右方向の重力(>)にa進みますd。これにより、次のようになります。
.........#..
........ad#.
#..#......f#
..b#.#...###
.#.......#q#
.........###
最後に、我々は(上向きの重力をシミュレートし^ている間に、)aおよびbマップ脱落。
.........#..
.........d#.
#..#......f#
...#.#...###
.#.......#q#
.........###
あなたの仕事は、重力シフト後に残りのキャラクターを出力することです。任意の順序で指定できます。この例では、の任意の順列を出力できますdfq。
テストケース
次のマップの場合:
abcde
.....
##.##
v = abde
v> = <nothing>
次のマップの場合:
######
#....#
abcdef
#.gh..
######
> = <nothing>
< = gh
^> = bcde
v< = bghef