编程题
### 问题描述
小蓝是一名软件工程师,他正在研究一种基于交换的排序算法,以提高排序的效率。
给定一个长度为 $N$ 的数组 $A$,小蓝希望通过交换对称元素的方式对该数组进行排序。
具体来说,小蓝可以对数组 $A$ 执行以下操作任意次数:
选择某个索引 $i$ ( $1\le i\le N$ ) 并交换从前往后数第 $i$ 个元素和从后往前数第 $i$ 个元素。
更正式地,选择一个索引 $i$ 并交换 $A_i$ 和 $A_{N+1-i}$。
请帮助小蓝判断是否可以使用任意(可能为零)次操作将数组 $A$ 变为有序。
### 输入格式
第一行包含一个整数 $N$,表示数组 $A$ 的长度。
第二行包含 $N$ 个整数 $A_1,A_2, \cdots,A_N$,以空格隔开。
数据范围保证:$1 \leq N \leq 10^5$,$1\leq A_i \leq 10^9$。
### 输出格式
如果可以通过任意次操作对 $A$ 进行排序,则输出 "YES"。否则,输出 "NO"。
### 样例输入
```
4
4 3 2 1
```
### 样例输出
```
YES
```
### 说明
对于样例,交换 $(A_1,A_4)$ 和 $(A_2,A_3)$ 后数组可以变为有序。