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 翻译