對於一個長度為 $n$ 的陣列 $a_1, a_2, \cdots, a_n$,已知 $a_1$ 為 $0$,定義 $\Delta$ 為陣列中任兩個數字的絕對值差所組成的一群數字。給定 $\Delta$ 的內容,輸出可以生成該 $\Delta$ 的最小與最大字典序陣列。
舉例來說,如果 $n = 3$ 且 $\Delta = (3, 4, 7)$,距離最大的是 $7$,因為最大距離必定是在最小與最大兩數之間,我們可以推論原序列的最大的數字是 $7$。接著,目前已知原序列有 $(0, 7)$,而距離序列扣除 $7$ 之後剩下 $(3, 4)$,我們要決定中間點的位置。此時最大的距離是 $4$,這個距離必然是該未知點與「最小的0」或者與「最大的7」之間的距離,所以這個點可能是 $4$ 或者 $3$,在檢驗距離序列後,發現兩者皆可能,所以原序列可能是 $(0, 3, 7)$ 或者 $(0, 4, 7)$,其中字典序最小的是 $(0, 3, 7)$,最大的是 $(0, 4, 7)$。
第一行輸入一個正整數 $n (1 \le n \le 25)$,接下來一行有 $\frac{n \times (n - 1)}{2}$ 個正整數。
(30 分): $n \le 6$
(70 分): 無限制
第一行輸出能生成出該 $\Delta$ 的最小字典序的陣列,第二行輸出能生成出該 $\Delta$ 的最大字典序的陣列。
3 3 4 7
0 3 7 0 4 7
5 1 2 3 3 5 5 6 8 10 11
0 1 3 6 11 0 5 8 10 11
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
45076 | ericshen1955 ... (暴力又被TLE) | q183 | 379 | 2025-01-05 22:26 |