[语言月赛 202404] 神秘排列

Luogu
IDLGB3965
Time1000ms
Memory512MB
DifficultyP2
2024O2优化数组语言月赛
一个数列是**神秘数列**当且仅当满足下列条件: 1. 这个数列是一个排列。即,整数 $1 \sim n$ 均在这个数列中出现过,且其中的每种整数仅出现过一次(例如,当 $n=4$ 时,$1,2,4,3$ 是一个排列, $1,2,2,2$ 不是一个排列); 2. 我们将一个数列中 $x$ 出现的位置(出现在第几个)记作 $p_x$($1 \leq p_x \leq n$),神秘数列需要满足对于 $1 \sim n$ 中的任意一个整数 $i$,都有 $p_i=a_i$。 例如,对序列 $3, 5, 2, 1, 4$,其中 $1$ 的出现位置为 $4$,因此 $p_1 = 4$。但是 $a_1 = 3 \neq p_1$,因此这个序列不是神秘序列。 你的工作是需要判定一个数列 $a_1, a_2, \cdots, a_n$ 是否为**神秘数列**。 ## Input 第一行一个整数 $n$,表示数列的长度。 第二行 $n$ 个整数 $a_1, a_2, \cdots, a_n$。 ## Output 一个字符串,假如这个数列是神秘数列,则输出 `YES`,否则输出 `NO`。 [samples] ## Note ### 数据规模与约定 对于 $40\%$ 的数据,$1 \leq n \leq 100$。 对于 $70\%$ 的数据,$1 \leq n \leq 2000$。 对于 $100\%$ 的数据,$1 \leq n \leq 10^5$。 数据保证 $a$ 是一个排列。即,整数 $1 \sim n$ 均在这个数列中出现过,且每种整数仅出现过一次。
Samples
Input #1
3
2 1 3
Output #1
YES
Input #2
5
3 5 2 1 4
Output #2
NO
API Response (JSON)
{
  "problem": {
    "name": "[语言月赛 202404] 神秘排列",
    "description": {
      "content": "一个数列是**神秘数列**当且仅当满足下列条件: 1. 这个数列是一个排列。即,整数 $1 \\sim n$ 均在这个数列中出现过,且其中的每种整数仅出现过一次(例如,当 $n=4$ 时,$1,2,4,3$ 是一个排列, $1,2,2,2$ 不是一个排列); 2. 我们将一个数列中 $x$ 出现的位置(出现在第几个)记作 $p_x$($1 \\leq p_x \\leq n$),神秘数列需要满足对于 ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB3965"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "一个数列是**神秘数列**当且仅当满足下列条件:\n\n1. 这个数列是一个排列。即,整数 $1 \\sim n$ 均在这个数列中出现过,且其中的每种整数仅出现过一次(例如,当 $n=4$ 时,$1,2,4,3$ 是一个排列, $1,2,2,2$ 不是一个排列);\n2. 我们将一个数列中 $x$ 出现的位置(出现在第几个)记作 $p_x$($1 \\leq p_x \\leq n$),神秘数列需要满足对于 ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments