#P13190. [GCJ 2016 #1A] Rank and File

[GCJ 2016 #1A] Rank and File

Description

当 Argus 军士的部队集合训练时,士兵们会站成一个 N×N\mathbf{N} \times \mathbf{N} 的正方形网格,每个格子里恰好有一名士兵。每位士兵都有一个确定的身高。

Argus 认为时刻关注每一位士兵非常重要。由于他喜欢从左上角观察整个方阵,他要求:

  • 在每一行内,士兵的身高必须从左到右严格递增。
  • 在每一列内,士兵的身高必须从上到下严格递增。

虽然同一行或同一列内不能有身高相同的士兵,但整个网格中可以有多名士兵身高相同。

由于士兵们有时会分别与自己所在的行或列进行训练,Argus 让你记录一份报告,内容包括 2×N2 \times \mathbf{N} 份士兵身高的列表:每一行(从左到右)和每一列(从上到下)各一份。当你巡视士兵时,你只能用很小的纸条记下每一份列表,因此每份列表都写在一张不同的纸条上。然而,在回办公室的路上,你被一声响亮的军号吓了一跳,所有纸条都掉在了地上,风把其中一张吹走了!剩下的纸条顺序已乱,你也不记得哪些是行、哪些是列,因为你没有记录这一点。

你知道,如果你交给 Argus 的报告不完整,他一定会让你做上百个俯卧撑。你能否找出缺失的那一份列表?

Input Format

输入的第一行包含一个整数 T\mathbf{T},表示测试用例的数量。接下来有 T\mathbf{T} 组测试用例。每组测试用例的第一行为一个整数 N\mathbf{N},接下来有 2×N12 \times \mathbf{N} - 1 行,每行包含 N\mathbf{N} 个整数,表示你记录下的列表,如题面所述。保证这些列表恰好是某个合法网格中全部行和列中除一份之外的所有列表。

Output Format

对于每组测试用例,输出一行 Case #x: y,其中 xx 表示测试用例编号(从 1 开始),yy 为缺失的那一份列表,包含 N\mathbf{N} 个严格递增的整数。

1
3
1 2 3
2 3 5
3 5 6
2 3 4
1 2 3
Case #1: 3 4 6

Hint

样例解释

在样例中,可能的方阵为:

1 2 3
2 3 4
3 5 6

1 2 3
2 3 5
3 4 6

无论哪种情况,缺失的列表都是 3 4 6

限制条件

  • 1T501 \leqslant \mathbf{T} \leqslant 50
  • 11 \leqslant 所有身高 2500\leqslant 2500
  • 每行的整数均严格递增。
  • 保证存在唯一的合法解。

小数据集(14 分,测试集 1 - 可见)

  • 2N102 \leqslant \mathbf{N} \leqslant 10

大数据集(21 分,测试集 2 - 隐藏)

  • 2N502 \leqslant \mathbf{N} \leqslant 50

翻译由 GPT4.1 完成。