#codefestival2015okinawaa. [code_festival_2015_okinawa_a]Automatic Map Generator
[code_festival_2015_okinawa_a]Automatic Map Generator
问题描述
众所周知,冲绳由各种岛屿组成。Snuke猫想要绘制一个简单的地图来包含其中一些岛屿。然而,由于纸张的尺寸有限,Snuke将无法详细绘制地图。
因此,猫Snuke将纸分成网格,这些网格有 个水平行和 个垂直列。对于网格的每个块,它可以填充为代表海洋的 .
或代表陆地的 #
。
每个岛屿由陆地块组成。对于表示陆地的两个块,当且仅当它们具有共同的边或顶点,或者它们由具有共同边或顶点的其他块连接时,我们才说它们属于同一个岛屿。否则,我们称这两个块属于不同的岛屿。
假设Snuke地图之外只有海洋。此外,请注意,被一个小岛包围的海洋被另一个岛屿所拥有(而不是外部岛屿)。
猫Snuke需要按照上述规则在纸上精确地绘制 个岛屿。请确定是否可以绘制。如果可以,请找到一个解决方案。
输入
输入将通过标准输入给出,格式如下
- 在第一行,用空格分隔给出 、、。
输出
如果无法绘制出恰好 个岛屿,则输出 IMPOSSIBLE
。否则,输出 行,其中第 行有 个字母,而第 行从左侧开始的第 个字母必须是猫Snuke绘制在纸上的字母。
如果有多个可能的解决方案,则允许输出其中任意一个。
输出最后要换行。
输入示例 1
6 7 4
输出示例 1
#.#####
..#...#
#.#.#.#
#.#...#
#..####
.#..###
有四个岛屿。尽管位于从顶部数第三行和从左数第五列的陆地块被外部岛屿所包围,但它们是分开的,因为它们之间有海洋,并且它们没有共享边或顶点。
输入示例 2
2 4 3
输出示例 2
IMPOSSIBLE
纸张太小,无法满足条件绘制地图。
输入示例 3
20 50 10
输出示例 3
..................................................
...........................................#......
..........................................#.......
..................................................
..........................................#.......
..............................................#...
.....................................##..#....##..
.........................................##..###..
..........................#...............#####...
..........................................####....
.........................................###......
......##...............#..............#.#.........
.......##.............................##..........
........#.............................###.........
.....................................##...........
.............................#.......##...........
.............................#..#.................
...........................#....#.................
..................................................
..................................................