CF BUDDY
← Problems·

1671B · Consecutive Points Segment

1000 · brute force, math, sortings

Problem: You are given nn points with integer coordinates on a coordinate axis OXOX. The coordinate of the ii-th point is xix_i. All points' coordinates are distinct and given in strictly increasing order.

For each point ii, you can do the following operation no more than once: take this point and move it by 11 to the left or to the right (i..e., you can change its coordinate xix_i to xi1x_i - 1 or to xi+1x_i + 1). In other words, for each point, you choose (separately) its new coordinate. For the ii-th point, it can be either xi1x_i - 1, xix_i or xi+1x_i + 1.

Your task is to determine if you can move some points as described above in such a way that the new set of points forms a consecutive segment of integers, i. e. for some integer ll the coordinates of points should be equal to l,l+1,,l+n1l, l + 1, \ldots, l + n - 1.

Note that the resulting points should have distinct coordinates.

You have to answer tt independent test cases.

Input Format: The first line of the input contains one integer tt (1t21041 \le t \le 2 \cdot 10^4) — the number of test cases. Then tt test cases follow.

The first line of the test case contains one integer nn (1n21051 \le n \le 2 \cdot 10^5) — the number of points in the set xx.

The second line of the test case contains nn integers x1<x2<<xnx_1 < x_2 < \ldots < x_n (1xi1061 \le x_i \le 10^6), where xix_i is the coordinate of the ii-th point.

It is guaranteed that the points are given in strictly increasing order (this also means that all coordinates are distinct). It is also guaranteed that the sum of nn does not exceed 21052 \cdot 10^5 (n2105\sum n \le 2 \cdot 10^5).

Output Format: For each test case, print the answer — if the set of points from the test case can be moved to form a consecutive segment of integers, print YES, otherwise print NO.

Sample Cases

Case 1

Input

5
2
1 4
3
1 2 3
4
1 2 3 7
1
1000000
3
2 5 6

Output

YES
YES
NO
YES
YES

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback