CF1669G Fall Down
题目描述
有一个 $n$ 行 $m$ 列的网格,其中有三种类型的格子:
- 空格子,用 `.` 表示。
- 石头,用 `*` 表示。
- 障碍物,用小写拉丁字母 `o` 表示。
所有的石头会一直下落,直到遇到地面(即最底下一行)、障碍物,或者已经无法再移动的其他石头为止。(换句话说,所有石头只要还能下落就会继续下落。)
请模拟这个过程。最终网格会是什么样子?
输入格式
输入包含多组测试用例。第一行为一个整数 $t$($1 \leq t \leq 100$),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行为两个整数 $n$ 和 $m$($1 \leq n, m \leq 50$),分别表示网格的行数和列数。
接下来有 $n$ 行,每行包含 $m$ 个字符。每个字符为 `.`、`*` 或 `o`,分别表示空格子、石头和障碍物。
输出格式
对于每个测试用例,输出一个 $n$ 行 $m$ 列的网格,表示模拟下落过程后的结果。
每个测试用例之间不需要输出空行,样例中的空行仅用于展示清晰。
说明/提示
由 ChatGPT 4.1 翻译