#P13379. [GCJ 2011 #3] Dire Straights

[GCJ 2011 #3] Dire Straights

Description

你正在玩一款纸牌游戏,每张牌上都写有一个整数。

在游戏中,你会得到一些牌——你的手牌。然后你需要将手牌中的牌分组成“顺子”。顺子是一组牌,这组牌上的数字是连续的;例如三张牌 {3,4,5}\{3, 4, 5\},或者单独一张牌 {7}\{7\}。你获得的奖金等于最短顺子的长度。如果你没有任何牌,则无法组成顺子,因此你获得 00 元。

你将会得到若干组测试数据,每组数据描述了你手中的牌。请你计算每组测试数据中你最多能获得多少奖金。

Input Format

输入的第一行包含测试数据组数 TT。每组测试数据占一行。每行包含一个整数 NN,表示你手中的牌数,接下来有 NN 个整数,表示这些牌上的数字。所有数字以空格分隔。

Output Format

对于每组测试数据,输出一行,格式为 "Case #xx: yy",其中 xx 为测试数据编号(从 11 开始),yy 为你能获得的最大奖金。

4
10 1 2 3 4 5 10 9 8 7 6
8 101 102 103 104 105 106 103 104
0
5 1 2 3 4 9
Case #1: 10
Case #2: 4
Case #3: 0
Case #4: 1

Hint

样例解释

第 1 组,你有 1110101010 张牌,可以组成一个长度为 1010 的顺子,获得 1010 元。

第 2 组,你可以组成两个顺子 {101,102,103,104,105,106}\{101, 102, 103, 104, 105, 106\}{103,104}\{103, 104\},获得 22 元。但更优的做法是组成 {101,102,103,104}\{101, 102, 103, 104\}{103,104,105,106}\{103, 104, 105, 106\},获得 44 元。

第 4 组,数字为 99 的牌只能单独成顺子,因此只能获得 11 元。

第 3 组,你没有任何牌,因此获得 00 元。你不能无中生有获得奖金。

数据范围

  • 1T1001 \leq T \leq 100
  • 牌上的数字范围为 111000010000

小数据范围(4 分,测试点 1 - 可见)

  • 0N100 \leq N \leq 10
  • 时间限制:3 秒

大数据范围(12 分,测试点 2 - 隐藏)

  • 0N10000 \leq N \leq 1000
  • 时间限制:6 秒

由 ChatGPT 4.1 翻译