CF1965D Missing Subarray Sum

题目描述

有一个长度为 $n$ 的正整数数组 $a$,你不知道它的具体内容。你已知 $a$ 是一个回文数组,也就是说,对于所有 $1 \le i \le n$,都有 $a_i = a_{n + 1 - i}$。你得到了该数组所有不同子数组的和(除了其中一个),这些和被打乱顺序给出。缺失的子数组和可以是 $a$ 的 $\frac{n(n+1)}{2}$ 个不同子数组中的任意一个。 请你还原出任意一个可能的回文数组 $a$。输入保证至少存在一个满足条件的数组 $a$。 如果数组 $b$ 可以通过从 $a$ 的开头和结尾各删除若干(可以为零或全部)元素得到,则称 $b$ 是 $a$ 的一个子数组。

输入格式

输入的第一行包含一个整数 $t$($1 \le t \le 200$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($3 \le n \le 1000$),表示数组 $a$ 的长度。 每个测试用例的第二行包含 $\frac{n(n+1)}{2} - 1$ 个整数 $s_i$($1\leq s_i \leq 10^9$),表示除了一个以外的所有子数组和。 保证所有测试用例中 $n$ 的总和不超过 $1000$。 输入的额外约束:总是存在至少一个合法解。 本题不支持 Hack。

输出格式

对于每个测试用例,输出一行 $n$ 个正整数 $a_1, a_2, \cdots, a_n$,表示任意一个满足条件的回文数组 $a$。 如果有多组解,输出任意一组均可。

说明/提示

对于第一个样例,$a = [1, 2, 1]$ 的所有子数组为: - $[1]$,和为 $1$, - $[2]$,和为 $2$, - $[1]$,和为 $1$, - $[1, 2]$,和为 $3$, - $[2, 1]$,和为 $3$, - $[1, 2, 1]$,和为 $4$。 所以所有子数组和为 $1, 1, 2, 3, 3, 4$,输入中缺失的和为 $3$。 对于第二个样例,缺失的子数组和为 $4$,对应子数组 $[2, 2]$。 对于第三个样例,缺失的子数组和为 $13$,因为有两个子数组和为 $13$($[3, 5, 5]$ 和 $[5, 5, 3]$),但输入中 $13$ 只出现了一次。 由 ChatGPT 4.1 翻译