#P100172. 破解谜题
破解谜题
题目背景
结束了一早上的摸鱼 IT 史学习,CodingCow 想吃点东西。于是 CodingCow 点了一份外卖,外卖员很懒,把外卖扔在了 1 楼,然后给 CodingCow 打了一个电话,溜了……
无奈的 CodingCow 只好下楼,CodingCow 走到电梯间,等了很久……很久……
于是他开始玩一个游戏,或许你见过类似的:
没错,CodingCow 玩的游戏和你小时候玩过的弹弹珠机有些类似。在一块板上,杵着若干跟柱子,这块板立着放置,每次玩家从某一列的最上面一行抛下一颗弹珠,弹珠会这样运动:
- 如果下一个格子是空格,那么向下运动一格。
- 如果下一个格子是柱子或者已经到了底部,则停止滚动并停在原处。
- 如果下一个格子是一颗停止的弹珠,则如果在左侧和左下方为空格时首选滚动到左侧的那一行,否则如果右侧和右下方为空格,则滚动到右侧的那一行。如果两侧都不为空,则弹珠静止不再移动。
题目描述
CodingCow 就这样站在电梯间……造板子……
可是,CodingCow 突然发现自己身上并没有带弹珠,于是他先写出了一些数字,对于数字 表示从第 下落。CodingCow 希望模拟出下落后板子的状态,可是 CodingCow 的脑子太菜了,请你帮帮他!
输入格式
输入第一行三个整数 ,,,表示有一个 的板子, 次投弹珠。
随后是一个 的矩阵,描述板子,其中:.
表示平板、X
表示柱子、O
表示弹珠(保证初始时没有弹珠)。
此后一行 个整数,描述了 CodingCow 放弹珠的顺序。一颗弹珠只有当上一颗完全走完,CodingCow 才会放下一颗。设这个整数为 ,它的意思是从第 列放入。
输出格式
输出一个 的矩阵,表示放完弹珠的样子。
样例
5 4 4
....
....
X...
....
....
1 1 1 1
....
O...
X...
....
OOO.
7 6 6
......
......
...XX.
......
......
.XX...
......
1 4 4 6 4 4
......
...O..
...XX.
......
.OO...
.XX...
O..O.O
见 "sample_problem3.zip/sample/2.in"
见 "sample_problem3.zip/sample/2.ans"
提示
本题输入量巨大,请务必使用较快的读写方式。
寄语
“给我瞧好了,这是斩灭海山的力量,化作焦炭吧。”
附件
数据范围
对于 的数据 。
对于 的数据 ,,,保证放置弹珠的时候指定的列还有空间。