Sara 是一位敬业的农民,拥有一块巨大的矩形土地。她的土地被整齐地划分为由 $5R$ 行和 $5C$ 列组成的网格。此外,每隔五行有一条横穿整个板宽的水平栅栏,每隔五列有一条纵贯整个板高的垂直栅栏。这些栅栏将土地分成了 $R \times C$ 个大小为 $5 \times 5$ 的区域,称为田地(fields)。
Sara 面临的两个最常见的问题是鸟类和干旱。为了对付讨厌的吃庄稼的鸟类,一些田地里配备了稻草人。稻草人(如果存在)占用一个单元格,且每个 $5 \times 5$ 的田地中最多只能有一个稻草人。
图 1:Sara 土地的样例布局、其文本表示以及一个有效的洒水器布置
在可能持续数月的干旱期间,Sara 使用洒水器来为她的庄稼浇水。她的每个洒水器都有三个喷头:一个主喷头和两个侧喷头。它恰好占用三个单元格并为它们全部浇水。侧喷头总是恰好占用与主喷头相邻(上、下、左或右)的两个单元格。因此,单个洒水器总是处于以下配置之一:
Sara 希望在她的土地上布置洒水器,使得每个没有被稻草人占用的单元格上都恰好有一个洒水器喷头。含有稻草人的单元格不能放置洒水器喷头。此外,喷头不能放置在 Sara 的土地之外。
由单个洒水器浇水的三个单元格不需要属于同一个 $5 \times 5$ 的田地:它们也可以属于相邻的田地。在这种情况下,Sara 必须在栅栏上打一个孔,位于由同一个洒水器浇水的相邻田地的两个单元格之间。打孔对 Sara 来说很困难:她不想打太多的孔。
任务
给定 Sara 土地的描述,你需要产生一个有效的洒水器配置来为其浇水。如果你成功了,你的得分将取决于需要在栅栏上打孔的总数——详见“评分”部分。
这是一个仅输出(output-only)的任务。你将获得 10 个输入文件,你只需要生成对应的输出文件。你可以从竞赛系统中下载输入文件,页面标签为 'Tasks'。
你需要使用竞赛系统分别提交每个输出文件。提交时,竞赛系统将检查你输出文件的格式。如果格式有效,输出文件将被评分并报告得分;否则,竞赛系统将报告错误。因此,你将获得提交给此任务的输出文件的完整反馈。
测试数据保证总是存在解。如果存在多个解,你可以提交其中任意一个。
输入格式
输入的第一行包含两个整数 $R$ 和 $C$ ($1 \le R, C \le 100$) —— 如上所述的 Sara 土地的大小。
接下来的 $6R-1$ 行,每行包含一个长度为 $6C-1$ 的字符序列。它们代表 Sara 的田地以及它们之间的栅栏。尽管栅栏实际上是无限薄的,但栅栏本身也用字符表示。
单个单元格由单个字符表示。点字符 . 表示一个空单元格,而 # 字符(ASCII 35)表示一个稻草人。垂直栅栏用 | 字符(ASCII 124)表示,水平栅栏用 - 字符(减号)表示。+ 字符表示栅栏的交叉点。
输出格式
输出文件应包含与输入文件格式相同的、带有有效洒水器布置的土地文本表示。栅栏上的每个孔都应由下划线字符 _ 表示。输入文件中的所有空单元格(点)都应替换为小写字母 a - z,以便满足以下规则:
- 由同一个洒水器浇水的任意三个单元格都用相同的字母表示,即使它们不都在同一个 $5 \times 5$ 的田地中。
- 如果同一田地中的两个相邻单元格由不同的洒水器浇水,则它们必须用不同的字母表示。
- 如果不同田地中的两个相邻单元格由不同的洒水器浇水,并且它们之间的栅栏上有一个孔,则它们必须用不同的字母表示。
- 只要满足之前的所有规则,允许属于不同田地的相邻单元格用相同的字母表示。
评分
每个测试点价值 10 分。如果浇水配置无效,你将在该测试点获得 0 分。如果配置有效,解将按如下方式评分:
- 如果栅栏中的孔数不大于 $R \times C$,你的得分为 10 分。
- 否则,你的得分为 5 分。
- 在 10 个官方测试输入中,有 4 个输入中每个田地都会有一个稻草人。
样例
输入样例 1
2 2 .....|..... .....|..... ...#.|..... .....|..... .....|..... -----+----- .....|..... .....|..... .....|..... .....|..... .....|.....
输出样例 1
aaacc|dxxxa bbbce|dyyya ddd#e|dzzza ccbae|fccbb cbbaa|ffcdb -----+---_- ssrrr|tttdd saaax_xxeee yxbbb|zdaaa yxccc|zdbbb yxddd|zdccc