309374: CF1669G. Fall Down

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:2 Solved:0

Description

Fall Down

题意翻译

有一个 $n\times m$ 的网格($ 1 \leq n, m \leq 50$),其中每个格子上有三种情况: 1. `o`字符:此块为一个石子 1. `*`字符:此块为障碍物,石子不能通过。 1. `.`字符:此块为空,石子可以通过。 每块石子回往下落,直到它落在了网格最下面一行、障碍物的上面一格或已落下的石子上面一格 给出原式网格,求石子落下后的网格。

题目描述

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

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

Input

题意翻译

有一个 $n\times m$ 的网格($ 1 \leq n, m \leq 50$),其中每个格子上有三种情况: 1. `o`字符:此块为一个石子 1. `*`字符:此块为障碍物,石子不能通过。 1. `.`字符:此块为空,石子可以通过。 每块石子回往下落,直到它落在了网格最下面一行、障碍物的上面一格或已落下的石子上面一格 给出原式网格,求石子落下后的网格。

加入题单

算法标签: