Universal Cup Judging System

Universal Cup

実行時間制限: 1 s メモリ制限: 2048 MB 満点: 100 難易度: [表示] ハック可能 ✓
統計

在以 $O(2^{0.49n})$ 的時間複雜度解決了子集和問題(Subset Sum problem)之後,小青魚希望你解決如下問題。

小青魚有 $n$ 張卡牌。第 $i$ 張卡牌($1 \le i \le n$)上寫有一個非負整數 $a_i$。

對於卡牌下標的每個子集 $S \subseteq [n]$(其中 $[n] = \{1, 2, \ldots, n\}$),他會記錄所選卡牌上整數的總和,即 $\sum_{i \in S} a_i$。空集對應的總和為 $0$。不同的子集會分別記錄,即使它們的總和相等。

在考慮完所有 $2^n$ 個子集後,他將這 $2^n$ 個總和按非降序排序,並記作 $s_0, s_1, \ldots, s_{2^n-1}$。小青魚希望你求出兩個相鄰總和之間的最大差值,即

$$\max_{0 \le i < 2^n - 1} (s_{i+1} - s_i).$$

輸入格式

本題包含多組測試資料。輸入的第一行包含一個整數 $T$($1 \le T$),表示測試資料的組數。

對於每組測試資料,第一行包含一個整數 $n$($1 \le n \le 10^6$),表示卡牌的數量。第二行包含 $n$ 個整數 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$),表示寫在卡牌上的整數。

保證所有測試資料中 $n$ 的總和不超過 $10^6$。

輸出格式

對於每組測試資料,輸出一行一個整數,表示兩個相鄰總和之間的最大差值。

範例

輸入格式 1

4
1
0
3
2 3 10
3
1 1 3
3
0 4 4

輸出格式 1

0
5
1
4

說明

在第一組範例測試資料中,兩個子集和均為 $0$,因此答案為 $0$。

在第二組範例測試資料中,排序後的子集和為 $0, 2, 3, 5, 10, 12, 13, 15$。最大差值為 $5$,出現在 $5$ 和 $10$ 之間。

在第三組範例測試資料中,排序後的子集和為 $0, 1, 1, 2, 3, 4, 4, 5$。答案為 $1$。

在第四組範例測試資料中,排序後的子集和為 $0, 0, 4, 4, 4, 4, 8, 8$。答案為 $4$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.