Problem D. 扫雷
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Description
小 W 知道你一定玩过扫雷。扫雷地图中有 n 行 m 列方格,其中有若干个方格为雷。当一个方格为 雷,该方格上面的数字为 0,否则该方格上面的数字为相邻的八个格子中雷的个数。小 W 觉得原始的扫雷太简单了,于是他找到了两张相同大小的扫雷的地图(雷的个数不一定相同) A 和 B,并请你判断能否通过不超过 ⌊n×m/2⌋ 次操作地图 A,使得地图 A 上所有方格数字之和等于地图 B 上所有方格数字之和,如果可以的话,请你把方案告诉小 W。 其中每步操作为,将一个格子的状态转化(即空地变成雷,或者雷变成空地),注意随着操作数字也会发现改变。
Format
Input
第一行两个整数 n, m,分别表示扫雷地图的行数和列数。 接下来 n 行,每行一个长度为 m 的字符串。若第 i 行的第 j 个字符为 *,则表示 A 地图的第 i 行 第 j 个方格为雷。若为 _ 则表示为空地,其上的数字请自行计算。 接下来 n 行,每行一个长度为 m 的字符串。表示地图 B,表示方法同上。
Output
如果不能,输出一行字符串 No。 如果可以,第一行输出字符串 Yes,第二行输出操作次数 k,这个数不能超过 ⌊n×m/2⌋。 接下来 k 行,第 i 行两个整数 ai, bi,表示第 i 次操作翻转地图 A 的第 i 行第 j 列的状态。答案并不唯一,请输出任意一个解。
Samples
4 4
__*_
____
____
____
____
____
__*_
____
Yes
2
1 3
3 3
2 3
_*_
__*
*__
_*_
Yes
0
Limitation
对于 20% 的数据,满足 n = 1。 对于另外 20% 的数据,满足 n, m ≤ 4。 对于另外 20% 的数据,满足地图 A 没有地雷。 对于另外 20% 的数据,满足 n, m ≤ 50。 对于全部数据,满足 n, m ≤ 1000。