CF1851D Prefix Permutation Sums

题目描述

你的朋友有一个包含 $n$ 个元素的数组,计算了它的前缀和数组并传递给你,但在传递过程中不小心丢失了一个元素。你的任务是判断给定的数组是否可能对应某个排列。 一个 $n$ 元素的排列是指一个包含 $1$ 到 $n$ 的 $n$ 个数的数组,每个数字恰好出现一次。 数组 $a$ 的前缀和数组 $b$ 定义为 $b_i = \sum_{j=1}^i a_j, 1 \le i \le n$。 例如,原始排列为 $[1, 5, 2, 4, 3]$,其前缀和数组为 $[1, 6, 8, 12, 15]$。丢失一个元素后,可能得到 $[6, 8, 12, 15]$ 或 $[1, 6, 8, 15]$ 等数组。 同样可以证明,数组 $[1, 2, 100]$ 不对应任何排列。

输入格式

第一行包含一个正整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个正整数 $n$($2 \le n \le 2 \cdot 10^5$),表示初始数组的大小。 每个测试用例的第二行包含 $n-1$ 个正整数 $a_i$($1 \le a_i \le 10^{18}$),$a_{i-1} < a_i$,表示前缀和数组的元素。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,如果存在这样的排列,输出 "YES";否则输出 "NO"。 你可以以任意大小写输出 "YES" 和 "NO"(例如,"yEs"、"yes" 和 "Yes" 都会被识别为肯定回答)。

说明/提示

在第四个样例中,例如,排列 $[1, 2, 3, 4]$ 是合适的。在第五个样例中,例如,排列 $[2, 1]$ 是合适的。在第七个样例中,例如,排列 $[1, 2, 4, 3]$ 是合适的。 由 ChatGPT 4.1 翻译