#P13179. [GCJ 2017 Finals] Dice Straight

[GCJ 2017 Finals] Dice Straight

Description

你有一组特殊的 NN 个六面骰子,每个骰子的六个面上都标有六个不同的正整数。不同的骰子,其面上的数字编号可能不同。

你希望将部分或全部骰子排成一排,使得它们朝上的面所显示的数字能够组成一个顺子(即这些数字是连续的整数)。对于每个骰子,你可以自由选择哪一面朝上。

你能组成的最长顺子的长度是多少?

Input Format

输入的第一行给出测试用例的数量 TT。接下来有 TT 组测试用例。每组测试用例的第一行为一个整数 NN,表示骰子的数量。接下来的 NN 行中,每行有六个正整数 DijD_{ij},表示第 ii 个骰子的第 jj 个面的数字。

Output Format

对于每组测试用例,输出一行,内容为 Case #x: y,其中 xx 表示测试用例编号(从 1 开始),yy 表示能够组成的最长顺子的长度。

3
4
4 8 15 16 23 42
8 6 7 5 30 9
1 2 3 4 55 6
2 10 18 36 54 86
2
1 2 3 4 5 6
60 50 40 30 20 10
3
1 2 3 4 5 6
1 2 3 4 5 6
1 4 2 6 5 3
Case #1: 4
Case #2: 1
Case #3: 3

Hint

样例解释

在样例第 1 组中,可以通过选取第 4 个骰子的 22,第 3 个骰子的 33,第 1 个骰子的 44,以及第 2 个骰子的 55,组成一个长度为 44 的顺子。

在样例第 2 组中,无法组成长度大于 11 的顺子,只能得到最基本的长度为 11 的顺子。

在样例第 3 组中,可以从一个骰子选 11,另一个骰子选 22,再从剩下的骰子选 33。注意,本组数据中有多个骰子的每个面上的数值完全相同。

限制条件

  • 1T1001 \leq T \leq 100
  • 对于所有 i,ji, j,有 1Dij1061 \leq D_{ij} \leq 10^6

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

  • 时间限制:60 15 秒。
  • 1N1001 \leq N \leq 100

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

  • 时间限制:120 30 秒。
  • 1N500001 \leq N \leq 50000
  • 所有测试用例中 NN 的总和 200000\leq 200000

翻译由 GPT4.1 完成。