AT_code_festival_2015_okinawa_a Automatic Map Generator
题目描述
[problemUrl]: https://atcoder.jp/contests/code-festival-2015-okinawa-open/tasks/code_festival_2015_okinawa_a
众所周知,冲绳由许多岛屿组成。Cat Snuke 想要画一张简单的地图来表示这些岛屿。然而,由于纸张的大小有限,Snuke 无法详细地绘制地图。
因此,Cat Snuke 将纸张划分为网格,这些网格有 $H$ 行 $W$ 列。对于每一个格子,可以填入 `.` 表示海洋,或者填入 `#` 表示陆地。
每一个岛屿由若干陆地格子组成。对于两个陆地格子,如果它们有公共边或公共顶点,或者通过其他有公共边或顶点的陆地格子间接相连,则认为它们属于同一个岛屿。否则,认为它们属于不同的岛屿。
假设 Snuke 的地图之外全是海洋。另外需要注意的是,被岛屿包围的海洋中被包围的陆地格子属于另一个岛屿(而不是外部的岛屿)。
Cat Snuke 需要按照上述规则,在纸上画出恰好 $K$ 个岛屿。请你判断 Snuke 是否能够做到。如果可以,请给出一种方案。
输入格式
输入将通过标准输入给出,格式如下:
> $H$ $W$ $K$
- 第一行包含三个用空格分隔的整数 $H\ (1\leq H\leq 100)$、$W\ (1\leq W\leq 100)$、$K\ (1\leq K\leq 10,000)$。
输出格式
如果无法画出恰好 $K$ 个岛屿,输出 `IMPOSSIBLE`。否则,输出 $H$ 行,每行 $W$ 个字符,表示 Cat Snuke 在纸上画的内容。第 $i$ 行的第 $j$ 个字符表示第 $i$ 行第 $j$ 列的格子的内容。
如果有多种方案,可以输出任意一种。
输出末尾需要换行。
说明/提示
## 问题说明
例如,有四个岛屿。虽然从上往下第 3 行、从左往右第 5 列的陆地格子被外部岛屿包围,但由于它们之间有海洋隔开且没有公共边或顶点,因此它们是分开的岛屿。
另一个例子中,纸张太小,无法画出满足条件的地图。
由 ChatGPT 4.1 翻译