#P13039. [GCJ 2021 #3] Build-A-Pair

    ID: 12876 远端评测题 5000ms 1024MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>贪心2021枚举分类讨论Google Code Jam

[GCJ 2021 #3] Build-A-Pair

Description

你需要构造一对正整数。为此,你会获得一个十进制数字列表作为可用数字。你必须恰好使用列表中的每个数字一次,但可以自由选择哪些数字用于第一个整数,哪些数字用于第二个整数。同时,你可以自由决定每个整数内部数字的排列顺序,但不允许在任何整数的最高位(最左侧)放置零。请注意,你也不能选择仅包含一个零的整数,因为它不是正整数。

例如,给定数字列表 [1,0,2,0,4,3][1, 0, 2, 0, 4, 3]。你可以构造的有效数字对包括 (200,143)(200, 143)(3,12400)(3, 12400)。而以下数字对则是无效的

  • (0102,34)(0102, 34):存在前导零。
  • (0,12340)(0, 12340):包含非正整数。
  • (10,243)(10, 243)(12300,47)(12300, 47):这些数字对中使用的数字列表与给定列表不完全一致。

给定数字列表,如何构造一对数字,使得它们的绝对差最小?

Input Format

输入的第一行包含测试用例的数量 T\mathbf{T}。随后是 T\mathbf{T} 行,每行描述一个测试用例,包含一个数字字符串 D\mathbf{D}D\mathbf{D} 的每个字符都是你必须使用的数字。

Output Format

对于每个测试用例,输出一行 Case #x: y,其中 xx 是测试用例编号(从 1 开始),yy 是根据上述规则从 D\mathbf{D} 构造的两个整数的最小可能绝对差

4
1234
0011
07080
0899
Case #1: 7
Case #2: 0
Case #3: 620
Case #4: 1

Hint

样例解释

最优构造的数字对为:

  • 样例 #1:31312424
  • 样例 #2:10101010
  • 样例 #3:7007008080
  • 样例 #4:89899090

数据范围

  • 1T1001 \leq \mathbf{T} \leq 100
  • D\mathbf{D} 的每个字符均为十进制数字。
  • D\mathbf{D} 中至少有两个字符不为 \emptyset

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

  • 2D2 \leq \mathbf{D} 的长度 8\leq 8

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

  • 2D2 \leq \mathbf{D} 的长度 36\leq 36

翻译由 DeepSeek V3 完成