P13320 [GCJ 2012 #1B] Equal Sums
题目描述
我有一个正整数集合 $\mathbf{S}$。你能否找到两个非空且不同的子集,使它们的元素和相等?
**注意**:子集是仅包含自 $\mathbf{S}$ 的元素的集合;若两个子集包含的元素完全相同,则认为它们是相同的,否则为不同子集。
输入格式
输入的第一行为测试用例数 $\mathbf{T}$。接下来有 $\mathbf{T}$ 组测试数据,每组一行。每组数据首先给出一个整数 $\mathbf{N}$,表示集合 $\mathbf{S}$ 中正整数的个数,随后是 $\mathbf{N}$ 个互不相同的正整数,全部在同一行。
输出格式
对于每个测试用例,首先输出一行 "Case #x:",其中 $\mathbf{x}$ 为测试用例编号(从 1 开始)。
* 如果存在 $\mathbf{S}$ 的两个不同子集,其元素和相等,则输出这两个子集,每行一个子集,子集内元素以空格分隔。
* 如果不存在这样的子集,则输出一行 "Impossible"。
如果存在多组答案,输出任意一组均可。注意原题样例没有输出方案。
说明/提示
**限制条件**
- $\mathbf{S}$ 中不会有相同的数。
- $1 \leq \mathbf{T} \leq 10$。
**测试集 1(6 分,结果可见)**
- 时间限制:~~60~~ 12 秒。
- $\mathbf{N}$ 恰好等于 $20$。
- $\mathbf{S}$ 中每个数均为小于 $10^5$ 的正整数。
**测试集 2(37 分,结果隐藏)**
- 时间限制:~~120~~ 30 秒。
- $\mathbf{N}$ 恰好等于 $500$。
- $\mathbf{S}$ 中每个数均为小于 $10^{12}$ 的正整数。
翻译由 ChatGPT-4.1 完成。