题号:NC221006
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述
本题有Easy,Hard两个版本,两个版本之间的区别仅在数据范围,通过Hard Version的代码可以直接通过Easy Version。保证Easy Version的测试用例集是Hard Version的子集
现在有一个

(n行m列,最左上角的坐标为1,1)的棋盘,你要在上面修建一些拱桥。
众所周知,修建一座拱桥需要两个桥墩,我们规定两个桥墩之间的欧几里得距离应该在

之间。
棋盘上面恰好有一个格子是坏掉的,你不能在坏掉的格子上面修建任何桥墩(但是允许有拱桥跨过此格)
你只能将桥墩修建在格子的正中心,且每个格子只能修建唯一的一个桥墩。
你并不需要担心修建的桥之间由于交叉导致冲突的问题,实际上,你可以通过修建不同高度的桥来避免它们冲突。
你想要尽可能多的在棋盘上面修建拱桥,请你给出一个修建拱桥数目最多的方案。
输入描述:
首先输入一个正整数
表示有T组测试案例,对于每组测试案例:
第一行输入两个正整数
表示棋盘的大小是n行m列。
第二行输入一个坐标
)
输出描述:
对于每组测试案例:
输出n行,每行m个数字。每个坐标上的数字表示桥墩属于哪一座桥,一座桥有两个桥墩。
你可以用俩个相同的正整数表示一座桥,注意同一座桥的两个桥墩之间的欧几里得距离应该在
之间。
如果某个格子上没有桥墩,则在该位置输出“-1”。
请保证坐标
上的数字为“-1”。
备注:
本题输出量较大,请使用快一点的读写方式。