你是一位制作美味团子(dango)的专业人士。现在,你正在用签子串团子。
团子位于一个 $R$ 行 $C$ 列的矩形网格中。每个单元格包含一个团子。团子的颜色为粉色 (P)、白色 (W) 或绿色 (G)。你需要选择垂直方向(从上到下)、水平方向(从左到右)或斜向(从左上到右下,或从右上到左下)的三个连续团子。然后,你将这些单元格中的三个团子按顺序取下,并串到一根签子上,得到一串团子。例如,如果你选择垂直方向的三个连续团子,你可以按顺序取下上-中-下或下-中-上的团子,并将它们串到签子上。你不能取下中-下-上或下-上-中顺序的团子。此外,你不能将一个团子串到多于一根的签子上。
如果一串团子的颜色按顺序为粉-白-绿或绿-白-粉,则这串团子是“美丽的”。你希望尽可能多地制作美丽的团子串。
你能制作多少串美丽的团子?
输入格式
本任务共有六组输入数据。 输入格式如下:
$R \ C$ $D_1$ $\vdots$ $D_R$
其中 $D_i$ ($1 \le i \le R$) 是一个长度为 $C$ 的字符串,由 P、W 和 G 组成。$D_i$ 的第 $j$ 个字符 ($1 \le j \le C$) 表示位于从上往下第 $i$ 行、从左往右第 $j$ 列的单元格中的团子颜色。
输出格式
输出数据的格式如下:
$S_1$ $\vdots$ $S_R$
其中 $S_i$ ($1 \le i \le R$) 是一个长度为 $C$ 的字符串,由 P、W、G、|、-、\ 和 / 组成。$S_i$ 的第 $j$ 个字符 ($1 \le j \le C$) 描述了如何串位于从上往下第 $i$ 行、从左往右第 $j$ 列的单元格中的团子。
- 如果该单元格的第 $j$ 个字符是
|,表示你将使用该单元格、其正上方的相邻单元格以及其正下方的相邻单元格制作一串美丽的团子。 - 如果该单元格的第 $j$ 个字符是
-,表示你将使用该单元格、其左侧的相邻单元格以及其右侧的相邻单元格制作一串美丽的团子。 - 如果该单元格的第 $j$ 个字符是
\,表示你将使用该单元格、其左上方的接触单元格以及其右下方的接触单元格制作一串美丽的团子。 - 如果该单元格的第 $j$ 个字符是
/,表示你将使用该单元格、其右上方的接触单元格以及其左下方的接触单元格制作一串美丽的团子。 - 否则,该单元格的第 $j$ 个字符应为 P、W 或 G,表示该单元格团子的颜色,即与 $D_i$ 的第 $j$ 个字符相同。
提交
请为每组输入数据提交输出数据。
数据范围
- $3 \le R \le 500$
- $3 \le C \le 500$
- $D_i$ ($1 \le i \le R$) 是一个长度为 $C$ 的字符串,由 P、W 和 G 组成。
评分
本任务的得分计算方式如下。 对于每个测试用例,我们定义四个值 $S$(表示分配的分数)、$X$、$Y$ 和 $Z$,如下表所示:
| 测试用例 | $S$ | $X$ | $Y$ | $Z$ |
|---|---|---|---|---|
| 01 | 15 | 44000 | 47000 | 47220 |
| 02 | 15 | 39000 | 41700 | 41980 |
| 03 | 15 | 45000 | 51000 | 51390 |
| 04 | 15 | 18000 | 19000 | 19120 |
| 05 | 20 | 43000 | 48200 | 48620 |
| 06 | 20 | 44000 | 46000 | 46500 |
对于每个测试用例,令 $N$ 为你提交的方案中制作的美丽团子串的数量。该测试用例的得分计算如下:
- 如果 $N < X$,得分为 0。
- 如果 $X \le N < Y$,得分为 $\frac{N - X}{2(Y - X)} \times S$。
- 如果 $Y \le N < Z$,得分为 $(\frac{1}{2} + \frac{N - Y}{2(Z - Y)}) \times S$。
- 如果 $Z \le N$,得分为 $S$。
你在本任务中的总得分为各测试用例得分之和,四舍五入到最接近的整数。
然而,如果你的输出数据不正确,即你无法根据输出数据中的字符 |、-、\、/ 制作出相应的美丽团子串,或者输出数据中的字符 P、W 或 G 与输入数据冲突,或者输出数据格式错误,则该测试用例的得分为 0。
样例
样例输入 1
3 4 PWGP WGPW GWPG
样例输出 1
P-GP WGP| G-PG
在此样例中,你制作了三串美丽的团子。 注意,你不能按 W G P 的顺序制作一串美丽的团子。
样例输入 2
3 4 PWWP WWWW PGGP
样例输出 2
PWWP W\/W PGGP
在此样例中,你制作了两串美丽的团子。
实现细节
本任务提供了一个可视化工具,可以直观地显示输入数据或输出数据的概况。你可以从竞赛系统中下载该可视化工具作为本任务的附件。
要使用该可视化工具,你应该用网页浏览器打开附件中的 visualizer.html,然后选择或拖放文件。注意,该可视化工具不会完全检查给定文件格式的正确性。如果输入文件格式错误,它可能无法正确执行。此外,如果 $R$ 或 $C$ 的值超过了数据范围,它也可能无法正确执行。