题目描述
有一个 H 行 W 列的方格网格。第 i 行第 j 列的方格记为 (i,j)。
在方格 (i,j) 内,放置了 aij 个硬币。
你可以执行以下操作任意多次:
操作:选择一个之前未选中且包含一个或多个硬币的方格,将其中一个硬币移动到上下左右相邻的方格中去。
最大化包含偶数个硬币的方格的数量。
约束条件
- 输入中的所有值都是整数。
- 1≤H,W≤500
- 0≤aij≤9
输入
从标准输入读入输入数据,输入格式如下:
H W
a11 a12 ... a1W
a21 a22 ... a2W
:
aH1 aH2 ... aHW
输出
按照以下格式打印一系列操作,以最大化包含偶数个硬币的方格的数量:
N
y1 x1 y1′ x1′
y2 x2 y2′ x2′
:
yN xN yN′ xN′
即,在第一行,打印一个整数 N,表示操作次数,N 的取值范围为 0≤N≤H×W。
在第 (i+1) 行 (1≤i≤N),打印四个整数 yi,xi,yi′ 和 xi′ (1≤yi,yi′≤H 且 1≤xi,xi′≤W),表示第 i 次操作。这四个整数表示将放置在方格 (yi,xi) 中的一个硬币移动到上下左右相邻的方格 (yi′,xi′) 中去。
请注意,如果指定的操作违反了问题描述中的规范,或者输出格式无效,将导致被判定为 Wrong Answer。
示例输入 1
2 3
1 2 3
0 1 1
示例输出 1
3
2 2 2 3
1 1 1 2
1 3 1 2
在执行以下一系列操作后,每个方格都包含偶数个硬币:
- 将方格 (2,2) 中的硬币移到方格 (2,3)。
- 将方格 (1,1) 中的硬币移到方格 (1,2)。
- 将方格 (1,3) 中的一个硬币移到方格 (1,2)。
示例输入 2
3 2
1 0
2 1
1 0
示例输出 2
3
1 1 1 2
1 2 2 2
3 1 3 2
示例输入 3
1 5
9 9 9 9 9
示例输出 3
2
1 1 1 2
1 3 1 4