AT_abc452_b [ABC452B] Draw Frame
题目描述
有一个 $H$ 行 $W$ 列的网格。Takahashi 打算将网格中的每个格子涂成黑色或白色。
他将网格边界上的所有格子涂成黑色,其他所有格子涂成白色。请输出他涂色后的网格。
更正式地,有一个 $H\times W$ 的网格。
我们称第 $i$ 行(从上往下数,$1 \le i \le H$)、第 $j$ 列(从左往右数,$1 \le j \le W$)的格子为 $(i,j)$。
若格子 $(i,j)\ (1 \le i \le H, 1 \le j \le W)$ 和格子 $(k,l)\ (1 \le k \le H, 1 \le l \le W)$ 满足 $|i-k|+|j-l|=1$,则称这两个格子“边邻接”。
如果一个格子 $(i,j)$ 的边邻接格子的数量不超过 $3$,则称这个格子“在边界上”。
请找到 $H$ 个字符串 $S_1,S_2,\ldots,S_H$,满足下列条件:
- $S_i$ 是长度为 $W$ 的字符串,第 $i$ 行、第 $j$ 列的格子 $(i,j)$ 若在边界上,则 $S_i$ 的第 $j$ 个字符为 `#`,否则为 `.`。
输入格式
输入从标准输入获取,格式如下:
> $H$ $W$
输出格式
输出 $H$ 行,每行一个长度为 $W$ 的字符串。如果第 $i$ 行第 $j$ 列的格子被涂成黑色,则第 $i$ 行的第 $j$ 个字符为 `#`,否则为 `.`。
说明/提示
### 样例解释 1
例如,格子 $(1,1)$ 是在边界上的。因为它只有两个边邻接格子:$(1,2)$ 和 $(2,1)$,所以 $(1,1)$ 被涂成黑色,因此第一行的第一个字符为 `#`。
相反,例如格子 $(3,4)$ 不是在边界上的。因为它有四个边邻接格子:$(2,4)$、$(3,3)$、$(3,5)$ 和 $(4,4)$,所以 $(3,4)$ 被涂成白色,因此第三行的第四个字符为 `.`。
### 数据范围
- $3\le H\le 10$
- $3\le W\le 10$
- 所有输入均为整数。
由 ChatGPT 5 翻译