QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 524288 MB Total points: 100 Hackable ✓

#14032. 蛋糕

Statistics

小 Vitechka 和小 Mitechka 买了一个蛋糕,这个蛋糕在网格托盘上呈现为一个连通的网格图形。但无论他们怎么尝试将其切成两块,其中一块总是比另一块更美观。因此,他们决定将蛋糕切成两个完全相同的部分。这两部分必须是连通的,且切割线必须沿着网格线(即沿着单元格的边界)。

请帮助 Vitechka 和 Mitechka 切割蛋糕。

如果存在一种平面等距变换(轴对称、平移和旋转的组合)可以将一个图形映射到另一个图形,则称这两个图形是相等的(全等的)。

如果一个网格图形中,仅通过在图形中相邻(共边)的单元格之间移动,就可以从任意单元格到达其他任意单元格,则称该网格图形是连通的。

输入格式

第一行包含两个整数 $n$ 和 $m$:分别表示托盘的高度和宽度($1 \le n, m \le 1000$)。

接下来的 $n$ 行,每行包含 $m$ 个字符 “.” 或 “X”,表示托盘的状态。蛋糕图形覆盖且仅覆盖托盘中字符为 “X” 的单元格。

保证蛋糕在托盘中占据至少 1 个且不超过 1000 个单元格。

输出格式

如果可以将蛋糕切开,第一行输出 “YES”。在接下来的 $n$ 行中,每行输出 $m$ 个字符 “.”、“A” 或 “B”,使得由字符 “A” 和 “B” 组成的图形分别对应划分后的两部分。

如果无法将蛋糕切成两个相等的部分,则在单行中输出 “NO”。

样例

输入样例 1

3 4
.X..
XXX.
..XX

输出样例 1

YES
.B..
BBA.
..AA

输入样例 2

3 4
XXXX
.XXX
..X.

输出样例 2

NO

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.