如果系统点击登陆没有弹出登陆对话框,请运行一下 :http://47.115.42.193/logout.php 登出,就可以了。
Problem F: 漏沙

Problem F: 漏沙

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Description

你有一个垂直放置的矩形木板,这块木板被分成若干个正方形单元格。我们用一个二维字符数组board从下往上,从左往右描述这块木板(即board[0]表示最上面的那一行)。有些格子是障碍(’x’表示),有些格子有沙子(用'o'表示),有些格子是空的(用'.'表示)。

你将模拟一次沙子的降落,规则如下:

1)障碍不能移动

2)当有一个空格突然出现在有沙子的格子的下面,那么沙子立刻落到空格中。

输出最终的木板。

输入

第一行两个整数rc,分别表示行数和列数。

接下来有一个rc列的二维数组board,意义如题目所述。

输出

输出一个rc列的二位数组,表示最终的木板。

样例输入

样例输出

5 5

ooooo

..x..

....x

.....

....o

..o..

..x.o

....x

.....

oo.oo

 


 

这题解法有好多,但用迭代的思路来解会发现格外的简单。首先我们观察局部,某位置的沙子会不会往下掉,只取决于它下方是不是空格,如果是就向掉下一格,不是就原地不动,只需要思考一格就可以了,至于它能不能继续再向下掉那是下一次迭代的事情。代码片断如下:

Input

5 5 (n行m列,0<n,m<100)

ooooo

..x..

....x

.....

....o

Output

..o..

..x.o

....x

.....

oo.oo

Sample Input Copy

6 5  
ooooo
..x..
....x
.....
....o
....o

Sample Output Copy

..o..
..x.o
....x
.....
....o
oo.oo

HINT

输入:
3 1
o
o
.


输出:
.
o

Please give us a Star @HUSTOJ Github!

欢迎关注微信公众号onlinejudge