luogu#P5791. [CTSC2006] 方块填数

[CTSC2006] 方块填数

题目描述

最近,一个方块填数的游戏风靡全球:

给定一个 n×mn\times m 的方块。nn 行从上到下标号为 11nnmm 列从左到右标号为 11mm。如果一个方格所在的行的标号和所在的列的标号都是奇数,那么该方格就称为奇方格。游戏的开始所有的奇方格中都填上了数。你需要在其他的方格里填数,如果填完数后,方块满足下面条件,你就赢得了这个游戏:

  1. 任意一个 a1×b1a_1\times b_1 的子方块中所有数的和大于 00
  2. 任意一个 a2×b2a_2\times b_2 的子方块中所有数的和小于 00

其中,a1a_1b1b_1a2a_2b2b_2 都是在游戏的开始给定的。一个 a×ba\times b 的子方块是指行标号在 ii1ina+11\leq i\leq n-a+1)到 i+a1i+a-1 之间,列标号在 j(1jmb+1)j(1\leq j\leq m-b+1)j+b1j+b-1 之间的所有的方格的集合。

小 P 很喜欢这种游戏,他希望你帮助写一个程序给出一种填数的方案,或者告诉他这样的方案不存在。

输入格式

第一行为用空格分开的 66 个正整数 nn, mm, a1a_1, b1b_1, a2a_2, b2b_2

从第 22 行起到 n+12+1\lfloor \frac{n+1}{2} \rfloor+1 行,每一行有 m+12\lfloor \frac{m+1}{2} \rfloor 个整数,第 i+1i+1 行的第 j(j=1,2,,m+12)j(j=1,2,\ldots, \lfloor \frac{m+1}{2} \rfloor) 个数表示在游戏开始时方块的第 2i12i-1 行,2j12j-1 列的方格所填的整数。

输出格式

如果填数方案不存在,输出一行 No

如果填数方案存在,第一行输出 Yes

接下来的 nn 行,每一行有用空格分开的 mm 个整数,描述一个填数方案。输出的每一个整数必须在 109-10^910910^9 之间。

3 3 2 2 3 3
1 1
1 1
Yes
1 -1 1
-4 5 -4
1 -1 1

提示

样例说明

填完数后,任意 2×22\times 2 的方块中的数字之和是 113×33\times 3 的方块中的数字之和是 1-1

数据范围

对于 100%100\% 的数据,1n,m,a1,b1,a2,b21001\leq n, m, a_1, b_1, a_2, b_2 \leq 100。方格里已经填的数都在 100-100100100 之间。