把整张 n×m 的网格按“蛇形路径(snake)”依次走过(第一行从左到右,第二行从右到左,第三行再从左到右……),就得到了一条基于四相邻的哈密顿路径:相邻访问的两个格子一定四邻接。 若令每个编号占据相同长度的一个连续片段,那么该编号对应的格子集合就是这条路径上的一个连续段,因此天然是连通的。
已知 k∣(n⋅m),设
给定整数 n、m、k ,请你在 n 行 m 列的网格中填入整数,使得:
每个格子填入的整数在 1 到 k 之间;
每个整数恰好出现 kn⋅m 次;
对于每个 a∈[1,k] ,编号为 a 的格子构成的连通块(基于四相邻)是连通的。
名词解释:四相邻:在这里,当 丨x−x′丨+丨y−y′丨==1时,单元格 (x,y) 和 (x′,y′) 被认为是相邻的。
第一行输入一个整数 t(1≤t≤104) ,表示测试用例数。
接下来 t 行,每行输入三个整数 n、m、k ,满足(2≤n⋅m≤2×105)、且 n⋅m=0(mod k),保证所有测试用例中 ∑n⋅m≤3×105 。
对于每个测试用例,输出 n 行,每行 m 个整数,表示一种满足条件的网格填充方案。如果存在多个解决方案,你可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
输入
2
2 2 2
2 4 2
输出
1 1
2 2
1 1 1 1
2 2 2 2
说明
第一组输出中,1 和 2 各出现 2 次,且编号相同的格子各自构成基于 4 邻接的连通块;
第二组输出中,1 和 2 各出现 4 次,且编号相同的格子各自构成基于 4 邻接的连通块。