#T071. 石头坠落

石头坠落

题目描述

给定一个 n×mn \times m 的网格,网格中有三种类型的单元格:

  • 空单元格,用 . 表示。
  • 石头,用 * 表示。
  • 障碍物,用小写字母 o 表示。

所有石头都会往下掉落,直到它们碰到地板(底行)、障碍物或者其他已经无法移动的石头。(换句话说,只要石头能往下落,它们就会下落。)

请模拟这个过程,输出最终的网格是什么样子的。

输入格式

第一行包含一个整数 tt,代表测试样例的组数。 (1t1001 \le t \le 100)

对于每组测试样例:

第一行输入 nnmm,表示网格的行数和列数(1n,m501 \le n,m \le 50

接下来 nn 行,每行输入 mm 个字符,字符只会是 .*o

输出格式

对于每个测试用例,输出最终的网格样子。

3
6 10
.*.*....*.
.*.......*
...o....o.
.*.*....*.
..........
.o......o*
2 9
...***ooo
.*o.*o.*o
5 5
*****
*....
*****
....*
*****
..........
...*....*.
.*.o....o.
.*........
.*......**
.o.*....o*
....**ooo
.*o**o.*o
.....
*...*
*****
*****
*****

提示

为方便各位对比答案,这里把各个样例输出用空行进行了分隔,实际输出时不需要空行分隔。

..........
...*....*.
.*.o....o.
.*........
.*......**
.o.*....o*

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

.....
*...*
*****
*****
*****