#B3965. [语言月赛 202404] 神秘排列

[语言月赛 202404] 神秘排列

题目描述

一个数列是神秘数列当且仅当满足下列条件:

  1. 这个数列是一个排列。即,整数 1n1 \sim n 均在这个数列中出现过,且其中的每种整数仅出现过一次(例如,当 n=4n=4 时,1,2,4,31,2,4,3 是一个排列, 1,2,2,21,2,2,2 不是一个排列);
  2. 我们将一个数列中 xx 出现的位置(出现在第几个)记作 pxp_x1pxn1 \leq p_x \leq n),神秘数列需要满足对于 1n1 \sim n 中的任意一个整数 ii,都有 pi=aip_i=a_i

例如,对序列 3,5,2,1,43, 5, 2, 1, 4,其中 11 的出现位置为 44,因此 p1=4p_1 = 4。但是 a1=3p1a_1 = 3 \neq p_1,因此这个序列不是神秘序列。

你的工作是需要判定一个数列 a1,a2,,ana_1, a_2, \cdots, a_n 是否为神秘数列

输入格式

第一行一个整数 nn,表示数列的长度。
第二行 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n

输出格式

一个字符串,假如这个数列是神秘数列,则输出 YES,否则输出 NO

3
2 1 3

YES

5
3 5 2 1 4

NO

提示

数据规模与约定

对于 40%40\% 的数据,1n1001 \leq n \leq 100

对于 70%70\% 的数据,1n20001 \leq n \leq 2000

对于 100%100\% 的数据,1n1051 \leq n \leq 10^5

数据保证 aa 是一个排列。即,整数 1n1 \sim n 均在这个数列中出现过,且每种整数仅出现过一次。