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 完成