#P17443. PM12316三色可染网格
PM12316三色可染网格
题目描述
有一个 的矩形网格。每个小格的四条边都已经画成白色;此外,每个小格最终还要恰好画上一条对角线。
所有格点随后要用红、绿、蓝三种颜色之一染色,并满足:任意由白色线段直接连接的两个格点颜色不同。这里白色线段包括小格的四条边以及该小格所选择的对角线。
输入矩阵中,字符含义如下:
N:该格已经确定画左上到右下的对角线;Z:该格已经确定画右上到左下的对角线;?:该格尚未确定,需要选择N或Z。
你需要补全所有 ?,使最终图可以用三种颜色合法染色。如果不存在任何合法补全,输出无解;否则输出所有合法补全中字典序最小的一个。比较两个矩阵时,从第一行开始依次比较字符串;字符顺序按通常字典序,因此 N 小于 Z。
输入格式
第一行两个整数 。
接下来 行,每行一个长度为 的字符串,只包含 N、Z、?。
输出格式
若无解,输出一行整数 0。
否则第一行输出整数 ,接下来输出 行补全后的矩阵。
数据范围
。
样例 1
1 1
Z
1
Z
样例 2
2 2
??
?N
2
NN
NN