#abc109d. [abc109_d]Make Them Even

[abc109_d]Make Them Even

题目描述

有一个 HHWW 列的方格网格。第 ii 行第 jj 列的方格记为 (i,j)(i, j)

在方格 (i,j)(i, j) 内,放置了 aija_{ij} 个硬币。

你可以执行以下操作任意多次:

操作:选择一个之前未选中且包含一个或多个硬币的方格,将其中一个硬币移动到上下左右相邻的方格中去。

最大化包含偶数个硬币的方格的数量。

约束条件

  • 输入中的所有值都是整数。
  • 1H,W5001 \leq H, W \leq 500
  • 0aij90 \leq a_{ij} \leq 9

输入

从标准输入读入输入数据,输入格式如下:

HH WW a11a_{11} a12a_{12} ...... a1Wa_{1W} a21a_{21} a22a_{22} ...... a2Wa_{2W} :: aH1a_{H1} aH2a_{H2} ...... aHWa_{HW}

输出

按照以下格式打印一系列操作,以最大化包含偶数个硬币的方格的数量:

NN y1y_1 x1x_1 y1y_1' x1x_1' y2y_2 x2x_2 y2y_2' x2x_2' :: yNy_N xNx_N yNy_N' xNx_N'

即,在第一行,打印一个整数 NN,表示操作次数,NN 的取值范围为 0NH×W0 \leq N \leq H \times W

在第 (i+1)(i+1) 行 (1iN1 \leq i \leq N),打印四个整数 yi,xi,yiy_i, x_i, y_i'xix_i' (1yi,yiH1 \leq y_i, y_i' \leq H1xi,xiW1 \leq x_i, x_i' \leq W),表示第 ii 次操作。这四个整数表示将放置在方格 (yi,xi)(y_i, x_i) 中的一个硬币移动到上下左右相邻的方格 (yi,xi)(y_i', x_i') 中去。

请注意,如果指定的操作违反了问题描述中的规范,或者输出格式无效,将导致被判定为 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, 2) 中的硬币移到方格 (2,3)(2, 3)
  • 将方格 (1,1)(1, 1) 中的硬币移到方格 (1,2)(1, 2)
  • 将方格 (1,3)(1, 3) 中的一个硬币移到方格 (1,2)(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