Flower City Fence
Contest: Codeforces Round 894 (Div. 3)
Difficulty rating: 1100
Tags: binary search, data structures, implementation, sortings

Anya lives in the Flower City. By order of the city mayor, she has to build a fence for herself.

The fence consists of $$$n$$$ planks, each with a height of $$$a_i$$$ meters. According to the order, the heights of the planks must not increase. In other words, it is true that $$$a_i \ge a_j$$$ for all $$$i < j$$$.

Anya became curious whether her fence is symmetrical with respect to the diagonal. In other words, will she get the same fence if she lays all the planks horizontally in the same order.

For example, for $$$n = 5$$$, $$$a = [5, 4, 3, 2, 1]$$$, the fence is symmetrical. Because if all the planks are laid horizontally, the fence will be $$$[5, 4, 3, 2, 1]$$$, as shown in the diagram.

On the left is the fence $$$[5, 4, 3, 2, 1]$$$, on the right is the same fence laid horizontally

But for $$$n = 3$$$, $$$a = [4, 2, 1]$$$, the fence is not symmetrical. Because if all the planks are laid horizontally, the fence will be $$$[3, 2, 1, 1]$$$, as shown in the diagram.

On the left is the fence $$$[4, 2, 1]$$$, on the right is the same fence laid horizontally

Help Anya and determine whether her fence is symmetrical.

Input format:
The first line of the input contains an integer $$$t$$$ ($$$1 \le t \le 10^4$$$) — the number of test cases.

The description of the test cases follows.

The first line of a test case contains a single integer $$$n$$$ ($$$1 \le n \le 2 \cdot 10^5$$$) — the length of the fence.

The second line of a test case contains $$$n$$$ integers $$$a_1 \ge a_2 \ge a_3 \ge \dots \ge a_n$$$ ($$$1 \le a_i \le 10^9$$$) — the heights of the planks.

The sum of the values of $$$n$$$ for all test cases does not exceed $$$2 \cdot 10^5$$$.

Output format:
For each test case, output "YES" if the fence is symmetrical, otherwise output "NO".

You can output each letter in any case (lowercase or uppercase). For example, the strings "yEs", "yes", "Yes" and "YES" will be accepted as a positive answer.

Constraints:
Time limit: 2.0 s
Memory limit: 256.0 MB

Note:
In the first and second test cases of the example, the fence is symmetrical.

In the third test case of the example, the fence is not symmetrical. If the planks are laid horizontally, the fence will be $$$[3, 2, 1, 1]$$$.

In the fourth test case of the example, the fence is not symmetrical. If the planks are laid horizontally, the fence will be $$$[1, 1]$$$.

In the fifth and sixth test cases of the example, the fence is symmetrical.

In the seventh test case of the example, the fence is not symmetrical. If the planks are laid horizontally, the fence will be $$$[2, 1, 1, 1, 1, 1]$$$.

Example input:
7
5
5 4 3 2 1
3
3 1 1
3
4 2 1
1
2
5
5 3 3 1 1
5
5 5 5 3 3
2
6 1

Example output:
YES
YES
NO
NO
YES
YES
NO

Editorial:
Obviously, if $$$a_1 \neq n$$$, then this fence is not symmetric, because the fence $$$a$$$ has a length of $$$n$$$, while the horizontally laid fence has a length of $$$a_1 \neq n$$$.
Now let's build a fence $$$b$$$ using horizontal boards that would match the original fence $$$a$$$. And let's check if the arrays $$$a$$$ and $$$b$$$ are equal. If they are equal, then the fence is symmetric; otherwise, it is not. There won't be any memory issues since all $$$a_i \le n$$$, which means the length of array $$$b$$$ does not exceed $$$n$$$.