P13039 [GCJ 2021 #3] Build-A-Pair
题目描述
你需要构造一对正整数。为此,你会获得一个十进制数字列表作为可用数字。你必须**恰好使用列表中的每个数字一次**,但可以自由选择哪些数字用于第一个整数,哪些数字用于第二个整数。同时,你可以自由决定每个整数内部数字的排列顺序,但**不允许在任何整数的最高位(最左侧)放置零**。请注意,你也不能选择仅包含一个零的整数,因为它不是正整数。
例如,给定数字列表 $[1, 0, 2, 0, 4, 3]$。你可以构造的有效数字对包括 $(200, 143)$ 和 $(3, 12400)$。而以下数字对则是**无效的**:
* $(0102, 34)$:存在前导零。
* $(0, 12340)$:包含非正整数。
* $(10, 243)$ 和 $(12300, 47)$:这些数字对中使用的数字列表与给定列表不完全一致。
给定数字列表,如何构造一对数字,使得它们的绝对差最小?
输入格式
输入的第一行包含测试用例的数量 $\mathbf{T}$。随后是 $\mathbf{T}$ 行,每行描述一个测试用例,包含一个数字字符串 $\mathbf{D}$。$\mathbf{D}$ 的每个字符都是你必须使用的数字。
输出格式
对于每个测试用例,输出一行 `Case #x: y`,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是根据上述规则从 $\mathbf{D}$ 构造的两个整数的**最小可能绝对差**。
说明/提示
**样例解释**
最优构造的数字对为:
- 样例 #1:$31$ 和 $24$;
- 样例 #2:$10$ 和 $10$;
- 样例 #3:$700$ 和 $80$;
- 样例 #4:$89$ 和 $90$。
**数据范围**
- $1 \leq \mathbf{T} \leq 100$。
- $\mathbf{D}$ 的每个字符均为十进制数字。
- $\mathbf{D}$ 中至少有两个字符不为 $\emptyset$。
**测试集 1(3 分,可见判定)**
- $2 \leq \mathbf{D}$ 的长度 $\leq 8$。
**测试集 2(12 分,可见判定)**
- $2 \leq \mathbf{D}$ 的长度 $\leq 36$。
翻译由 DeepSeek V3 完成