#C1559. J10 实践-2 简单数谜
J10 实践-2 简单数谜
J10 实践-2 简单数谜
题目描述
数谜是数独的更大(且更难)的兄弟问题,而且在日本也是非常受欢迎的。 数谜问题和填字游戏类似,不过它要填的不是文字而是数字。数谜游戏的目标是用 填满所有空格,且这些数字相加的和满足相应的要求(或者称为“提示”),且在同一栏(“栏”是指一些水平或者竖直的连续的空格,用于提示的格子不算空格)不能填重复的数字。当所有格子按要求被填满后,这个数谜就看作被解决了。 图1和图2是一个可能的数谜游戏示例。
当然,直接求解数谜问题的话会比较困难。所以现在我们需要解决的是一个更简单的数谜问题。简单数谜的形状是一个 行乘 列的矩形。而简单数谜也只有两种要求,就是行要求和列要求,且分别处于第一行和第一列,其他格子则是空格,而左上角是忽略不计的。 佩奇爱好简单数谜,他已经给一些简单数谜填好了其中的一些空格。现在,他想寻求你的帮助,来帮他完成这些简单数谜。如图所示, 和 是佩奇已经填好的空格,图则是一个基于图的一个可能的解答。
输入格式
第一行包含一个正整数 ,表示测试数据数目。 每组数据第一行是 和 ,表示数谜的形状的大小。 接下来一行有 个整数,是相应的行要求; 然后一行是 个整数,是相应的列要求。 接下来的 行每行有 个小于 的非负整数, 表示该空格还没有被填数字,其他表示佩奇已经填好的数字。 输入数据保证未填数字的空格不会超过 个。
输出格式
对于每组测试数据,输出若干行。
如果基于佩奇已填的结果,该数谜只有一个解,则输出该解;
如果不止一个解,则输出一行“Not unique.”
;
如果没有解,则输出一行 “No answer.”
。
样例输入
3
3 3
6 6 6
6 6 6
0 0 0
0 3 0
0 0 0
2 3
10 17
5 16 6
2 0 0
0 9 0
2 2
3 5
4 4
0 0
0 0
样例输出
Not unique.
2 7 1
3 9 5
No answer.
样例分析
如上所述。
数据范围
对于 的数据:。