#CSES2216. 收集数字

收集数字

题目背景

翻译自 CSES-2216 题。

题目描述

给出一个 11NN 的排列 A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N),请从左到右遍历数组,并按照递增顺序尽可能多地收集数字。

具体来说,你需要用下面的操作:

  • 找出一个序列 C=(C1,C2,,Ck)C=(C_1,C_2,\cdots,C_k),满足 C1<C2<<CkC_1<C_2<\cdots<C_k,且对于 1ik1\le i \le k,有 ACi+1=ACi+1A_{C_i}+1=A_{C_i+1}
  • 对于 1ik1\le i \le k 将所有 ACiA_{C_i} 标记。

请问总共需要多少轮操作才能使 AA 中的所有元素被标记?

输入格式

第一行输入一个整数 nn,代表数组大小。

第二行输入 nn 个整数 x1,x2,,xnx_1,x_2,\dots,x_n,分别代表数组中的数字。

输出格式

输出一个整数,表示轮数。

样例

5
4 2 1 5 3
3

说明/提示

样例解释

第一轮标记 (A1,A4)(A_1,A_4),即整数 4455

第二轮标记 (A2,A5)(A_2,A_5),即整数 2233

第三轮标记 (A3)(A_3),即整数 11

数据范围

1n21051 \leq n \leq 2\cdot 10^5