-->
当前位置:首页 > 题库 > 正文内容

近两周来,多梅尼科一直躺在床上,因为他的朋友内德耶伊科不小心把一块大石头砸到了他的左脚。自从$$1998$$年以来,多梅尼科已经解决了所有克罗地亚国家比赛的任务,他必须找到一种新的消磨时间的方法。

多梅尼科的新游戏是在$$R×C$$板上玩的。最初,每个广场要么是空的,要么被墙挡住。多梅尼科把一块石头扔到木板上,把它放在柱子的最上面一排,然后让重力来做其余的事情。

重力作用如下:

•如果岩石下方的正方形是一面墙,或者如果岩石位于柱的底部,则岩石仍然存在。
Luz3年前 (2022-09-05)题库371
近两周来,多梅尼科一直躺在床上,因为他的朋友内德耶伊科不小心把一块大石头砸到了他的左脚。自从$$1998$$年以来,多梅尼科已经解决了所有克罗地亚国家比赛的任务,他必须找到一种新的消磨时间的方法。

多梅尼科的新游戏是在$$R×C$$板上玩的。最初,每个广场要么是空的,要么被墙挡住。多梅尼科把一块石头扔到木板上,把它放在柱子的最上面一排,然后让重力来做其余的事情。

重力作用如下:

•如果岩石下方的正方形是一面墙,或者如果岩石位于柱的底部,则岩石仍然存在。

•如果岩石下方的正方形是空的,则岩石会移动到该正方形。

•如果岩石下方的正方形包含另一块岩石,则下落的岩石可能会侧向滑动:

o如果岩石左侧和左侧下方的方块是空的,那么岩石会向左滑动一个方块。

o如果岩石没有向左滑动,并且向右和向右下方的方块是空的,那么岩石会向右滑动一个方块。
否则,岩石会留在那里,永远不会移动。

多梅尼科永远不会在前一块石头还没有稳定下来的时候扔下另一块石头。

写一个程序,在多梅尼科把所有的石头扔进棋盘后,画出棋盘,如果我们知道多梅尼科把石头扔进的柱子,按顺序。

注:多梅尼科绝不会把一块石头扔进最上面一行不是空的柱子里。

### 输入格式:

第一行包含整数$$R$$和$$C(1≤R≤ 30000, 1≤C≤30)$$,板的大小。

下面的每一行都包含$$C$$字符,这是板的初始布局。$$A$$.''表示一个空字段,而大写字母“$$X$$”是一个被墙挡住的正方形。

下一行包含一个整数$$N(1≤N≤100000)$$,多梅尼科扔的石头的数量。

以下$$N$$行中的每一行都包含一个介于$$1$$和$$C$$之间的整数,多梅尼科在该列中投掷一块石头(最左边的一列是第$$1$$列)。

注:在$$60$$%的测试用例中,$$R$$不超过$$30$$。

### 输出格式:

输出$$R$$行,每行包含$$C$$字符,这是板的最终布局。岩石应该用大写字母“$$O$$”表示。

### 输入样例1:

in
5 4
....
....
X...
....
....
4
1
1
1
1


### 输出样例1:

out
....
O...
X...
....
OOO.

### 输入样例2:

in
7 6
......
......
...XX.
......
......
.XX...
......
6
1
4
4
6
4
4


### 输出样例2:

out
......
...O..
...XX.
......
.OO...
.XX...
O..O.O


在第一个例子中,所有的石头都被扔到第一列。第一块石头停在墙上。第二块石头落在第一块石头上,向右滑动,停在第二根柱子的底部。第三块石头落在第一块石头上,然后落在第二块石头上,向左滑动,停在第一根柱子的底部。第四块石头落在第一块石头上,然后落在第二块石头上,然后向右滑动。







答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。