在以 $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$。