编程题
### 问题描述 小蓝是一名软件工程师,他正在研究一种基于交换的排序算法,以提高排序的效率。 给定一个长度为 $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)$ 后数组可以变为有序。
查看答案
赣ICP备20007335号-2