AT_abc464_b [ABC464B] Crop
题目描述
有一张高为 $H$ 像素、宽为 $W$ 像素的黑白图片。第 $i$ 行第 $j$ 列像素的颜色用字符 $C_{i,j}$ 表示,其中 `.` 代表白色,`#` 代表黑色。
请按照如下顺序,从图像的上下左右四边,依次去除全为白色的行和列:
1. 当图片顶端的最上面一行全部为白色时,反复删去最上面一行。
2. 当图片底端的最下面一行全部为白色时,反复删去最下面一行。
3. 当图片最左端的最左边一列全部为白色时,反复删去最左边一列。
4. 当图片最右端的最右边一列全部为白色时,反复删去最右边一列。
输出处理后的图片。
保证输入的图片中至少存在一个黑色像素。
输入格式
输入从标准输入读取,格式如下:
> $H$ $W$
> $C_{1,1}C_{1,2}\ldots C_{1,W}$
> $C_{2,1}C_{2,2}\ldots C_{2,W}$
> $\vdots$
> $C_{H,1}C_{H,2}\ldots C_{H,W}$
输出格式
输出处理后的图片,格式如下。
此时 $h$ 和 $w$ 分别表示处理后图片的高和宽(像素),$c_{i,j}$ 表示处理后第 $i$ 行第 $j$ 列像素的颜色,若为白色输入 `.`,若为黑色输入 `#`。
> $c_{1,1}c_{1,2}\ldots c_{1,w}$
> $c_{2,1}c_{2,2}\ldots c_{2,w}$
> $\vdots$
> $c_{h,1}c_{h,2}\ldots c_{h,w}$
说明/提示
### 样例解释1
你需要从顶端删去一行,从底端删去一行,从最左边删去一列,从最右边删去一列。
### 样例解释2
对于该图片,最顶端的行、最底端的行、最左端的列以及最右端的列都包含黑色像素。
因此不需要删去任何行或列,直接输出原始图片。
### 限制
- $1 \leq H, W \leq 50$
- $C_{i,j}$ 仅为 `.` 或 `#`。
- 至少存在一个黑色像素。
由 ChatGPT 5 翻译