CF1671B Consecutive Points Segment

题目描述

给定 $n$ 个在坐标轴 $OX$ 上的整点,这些点的坐标为 $x_i$。所有点的坐标互不相同,并且严格递增。 对于每个点 $i$,你最多可以进行一次如下操作:将该点向左或向右移动 $1$ 个单位(即,你可以将其坐标 $x_i$ 改为 $x_i - 1$ 或 $x_i + 1$)。换句话说,对于每个点,你可以单独选择它的新坐标。对于第 $i$ 个点,其新坐标可以是 $x_i - 1$、$x_i$ 或 $x_i + 1$。 你的任务是判断,是否可以通过上述操作,使得所有点的新坐标构成一段连续的整数区间。即,存在某个整数 $l$,使得所有点的坐标为 $l, l + 1, \ldots, l + n - 1$。 注意,最终所有点的新坐标也必须互不相同。 你需要回答 $t$ 组独立的测试用例。

输入格式

输入的第一行包含一个整数 $t$($1 \le t \le 2 \cdot 10^4$),表示测试用例的数量。接下来是 $t$ 组测试用例。 每组测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示点的数量。 第二行包含 $n$ 个整数 $x_1 < x_2 < \ldots < x_n$($1 \le x_i \le 10^6$),表示第 $i$ 个点的坐标。 保证所有点的坐标严格递增(也即所有坐标互不相同)。保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$($\sum n \le 2 \cdot 10^5$)。

输出格式

对于每组测试用例,输出一行答案。如果可以通过操作使得所有点的新坐标构成一段连续的整数区间,输出 YES,否则输出 NO。

说明/提示

由 ChatGPT 4.1 翻译