#P13026. [GCJ 2021 #1A] Append Sort

[GCJ 2021 #1A] Append Sort

Description

我们有一个整数列表 X1,X2,,XNX_1, X_2, \ldots, X_N。我们希望它们能按严格递增的顺序排列,但遗憾的是不能直接重新排序。这意味着常规的排序算法无法使用。

我们唯一的操作是在这些数字的右侧(十进制下)追加数字 0099。例如,若某数字是 1010,通过一次追加操作可以变为 100100109109,通过两次操作可变为 10341034(如下图所示)。

给定当前列表,至少需要进行多少次单数字追加操作才能使列表严格递增?

例如,对于列表 100,7,10100, 7, 10,可通过 44 次操作将其变为有序列表,如下图所示。

Input Format

输入的第一行给出测试用例数量 T\mathbf{T}。随后是 T\mathbf{T} 个测试用例。每个测试用例由两行描述:第一行包含一个整数 N\mathbf{N},表示列表中的数字数量;第二行包含 N\mathbf{N} 个整数 $\mathbf{X}_1, \mathbf{X}_2, \ldots, \mathbf{X}_\mathbf{N}$,即列表成员。

Output Format

对于每个测试用例,输出一行 Case #x: y,其中 xx 为测试用例编号(从 1 开始),yy 为使列表严格递增所需的最少单数字追加操作次数。

4
3
100 7 10
2
10 10
3
4 19 1
3
1 2 3
Case #1: 4
Case #2: 1
Case #3: 2
Case #4: 0

Hint

样例解释

在样例 #1 中,输入与题目描述中的示例相同。如图所示,需 44 次操作使列表有序。注意最后两个数字最终至少需要 33 位数字(共需至少 33 次追加操作)。若所有数字最终均为 33 位,由于第二个数字以 77 开头而第三个以 11 开头,第二个数字仍会大于第三个,因此无法用少于 44 次操作完成。

在样例 #2 中,由于要求严格递增,必须至少进行 11 次操作。此处对第二个数字追加任意有效数字均可。

在样例 #3 中,可通过 22 次操作将列表变为 4,19,1934, 19, 193

在样例 #4 中,列表已严格递增,无需操作。

数据范围

  • 1T1001 \leq \mathbf{T} \leq 100

测试集 1(12 分,可见判定)

  • 2N32 \leq \mathbf{N} \leq 3
  • 1Xi1001 \leq \mathbf{X}_i \leq 100(对所有 ii)。

测试集 2(14 分,可见判定)

  • 2N1002 \leq \mathbf{N} \leq 100
  • 1Xi1091 \leq \mathbf{X}_i \leq 10^9(对所有 ii)。

翻译由 DeepSeek V3 完成