#P17050. [SGU243] Broken Chessboard
[SGU243] Broken Chessboard
题目描述
一个边长为 的正方形棋盘被打碎成了若干块。每一块都是四连通的:也就是说,从这一块中的任意一个格子出发,都可以只经过这一块的格子,按上下左右移动到达这一块中的任意其他格子。
这些碎片随后被散落在一个 的桌面上。每块碎片可能被旋转 、 或 ,但不会被翻转。
桌面上:
.表示空位置;- 第 块碎片的所有格子用第 个大写英文字母表示,即依次为
A、B、C……
现在请使用所有碎片,重新拼成一个 的正方形。
不需要恢复原棋盘的黑白格颜色。
保证至少存在一种合法拼法。
输入格式
第一行包含一个整数 :
。
接下来 行,每行包含 个字符,描述桌面上散落的碎片。
输出格式
输出 行,每行 个大写英文字母,表示拼好的棋盘。
对于每个字母,对应格子的形状必须与输入中该碎片的形状相同,允许整体旋转 、、 或 ,但不允许镜像翻转。
所有输入碎片都必须恰好使用一次。
如果存在多种答案,输出任意一种即可。
样例 1
样例输入
3
....................
....................
....................
....................
........A...........
....................
...............C....
....................
..........B.........
....................
....................
....................
....................
............D.......
...........DDD......
............D.......
....................
....................
.................E..
....................
样例输出
ADB
DDD
CDE