#CSES2216. 收集数字

收集数字

题目描述

给出一个 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,且对于 1i<k1 \le i < 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, \ldots, 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

数据范围

  • 1n2×1051 \le n \le 2 \times 10^5