ท้าทาย
คุณได้รับการนำเสนอ ASCII-art ของตัวละครบนเครื่องบินเป็นวิธีป้อนข้อมูลด้วยวิธีการที่สมเหตุสมผล สิ่งนี้จะมี:
[a-z]แสดงถึงอักขระที่เคลื่อนย้ายได้ จดหมายทุกฉบับจะปรากฏบนกระดานไม่เกินหนึ่งครั้ง#แสดงถึงกำแพงอสังหาริมทรัพย์.แทนพื้นที่ว่าง
ตัวอย่างเช่น:
abcdef.gh#..
.......ij.#.
#..#.......#
...#.#...###
.#.......#q#
.........###
คุณจะได้รับสายอักขระที่แสดงถึงการเปลี่ยนแปลงของแรงโน้มถ่วง สิ่งนี้จะมี:
>เป็นตัวแทนของการเปลี่ยนแปลงแรงโน้มถ่วงไปทางขวา<แสดงถึงการเปลี่ยนแปลงของแรงโน้มถ่วงทางซ้าย^แสดงถึงการเปลี่ยนแปลงของแรงโน้มถ่วงขาขึ้นvเป็นตัวแทนของการเปลี่ยนแปลงแรงโน้มถ่วงลดลง
ตัวอย่างเช่น:
v>^
โปรแกรมของคุณจะต้องจำลองการเปลี่ยนแปลงของแรงโน้มถ่วงตามลำดับจนกว่าตัวละครทุกตัวจะหยุดเคลื่อนไหว (พวกมันชนกำแพงหรือตัวละครอื่น) อักขระที่ "หลุดออกจากขอบแผนที่" จะถูกลบออกอย่างถาวรและอักขระสามารถ "ซ้อน" ที่ด้านบนของกันและกัน
ในตัวอย่างนี้ที่เริ่มต้นมีแรงโน้มถ่วงลง ( v) เพื่อc, e, g, h, iและjตกออกจากด้านล่างของแผนที่ ตัวละครอื่น ๆ ทั้งหมดเลื่อนลงมาจนชนกำแพงจากแผนที่ดังนี้:
.........#..
a..d......#.
#..#.f.....#
.b.#.#...###
.#.......#q#
.........###
จากนั้นเราจะย้ายไปทางขวาแรงโน้มถ่วง ( >) ซึ่งทำให้เรามีนี้หมายเหตุ: วิธีการที่กองติดกับad
.........#..
........ad#.
#..#......f#
..b#.#...###
.#.......#q#
.........###
ในที่สุดเราจำลองแรงโน้มถ่วงขาขึ้น ( ^) ในระหว่างที่aและbหลุดออกจากแผนที่
.........#..
.........d#.
#..#......f#
...#.#...###
.#.......#q#
.........###
งานของคุณคือการส่งออกตัวละครที่เหลือหลังจากการเปลี่ยนแปลงแรงโน้มถ่วง พวกเขาสามารถได้รับในลำดับใด ๆ dfqตัวอย่างนี้คุณสามารถส่งออกการเปลี่ยนแปลงใด ๆ
Testcases
สำหรับแผนที่ต่อไปนี้:
abcde
.....
##.##
v = abde
v> = <nothing>
สำหรับแผนที่ต่อไปนี้:
######
#....#
abcdef
#.gh..
######
> = <nothing>
< = gh
^> = bcde
v< = bghef