测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A15016. Fall Down

编程题 普及/提高-

题目描述

There is a grid with $n$ rows and $m$ columns, and three types of cells:

- An empty cell, denoted with '.'.
- A stone, denoted with '\*'.
- An obstacle, denoted with the lowercase Latin letter 'o'.

All stones fall down until they meet the floor (the bottom row), an obstacle, or other stone which is already immovable. (In other words, all the stones just fall down as long as they can fall.)

Simulate the process. What does the resulting grid look like?

输入格式

The input consists of multiple test cases. The first line contains an integer $t$ ( $1 \leq t \leq 100$ ) — the number of test cases. The description of the test cases follows.

The first line of each test case contains two integers $n$ and $m$ ( $1 \leq n, m \leq 50$ ) — the number of rows and the number of columns in the grid, respectively.

Then $n$ lines follow, each containing $m$ characters. Each of these characters is either '.', '\*', or 'o' — an empty cell, a stone, or an obstacle, respectively.

输出格式

For each test case, output a grid with $n$ rows and $m$ columns, showing the result of the process.

You don't need to output a new line after each test, it is in the samples just for clarity.

输入输出样例

输入 #1
3
6 10
.*.*....*.
.*.......*
...o....o.
.*.*....*.
..........
.o......o*
2 9
...***ooo
.*o.*o.*o
5 5
*****
*....
*****
....*
*****
输出 #1
..........
...*....*.
.*.o....o.
.*........
.*......**
.o.*....o*

....**ooo
.*o**o.*o

.....
*...*
*****
*****
*****
上一题 去做题 下一题