AT_agc063_b [AGC063B] Insert 1, 2, 3, ...

题目描述

称一个由正整数组成的数列 $a = (a_1, \ldots, a_n)$ **可生成**,是指可以从空序列出发,反复进行如下操作得到 $a$。 - 操作:选择一个正整数 $k$,并将 $(1, 2, \ldots, k-1, k)$ 插入到当前序列的任意位置。更形式化地说,对于当前序列 $a = (a_1, \ldots, a_m)$,选择一个整数 $i$ 满足 $0 \leq i \leq m$ 以及一个正整数 $k$,将 $a$ 替换为 $(a_1, \ldots, a_i, 1, 2, \ldots, k-1, k, a_{i+1}, \ldots, a_m)$。 例如,$a = (1,2,1,1,2,1,3,4,2,3)$ 是可生成的。以下是其中一种生成过程: $() \to (\mathbf{1,2}) \to (1,2,\mathbf{1,2,3}) \to (1,2,1,\mathbf{1,2,3,4},2,3) \to (1,2,1,1,2,\mathbf{1},3,4,2,3)$ ------ 给定一个由正整数组成的数列 $A = (A_1, \ldots, A_N)$。请你计算满足下列条件的整数对 $(L, R)$ 的个数: - $1 \leq L \leq R \leq N$,且连续子序列 $(A_L, \ldots, A_R)$ 是可生成的。

输入格式

输入以如下格式从标准输入给出。 > $N$ $A_1$ $A_2$ $\ldots$ $A_N$

输出格式

输出满足条件的整数对 $(L, R)$ 的个数。

说明/提示

## 限制 - $1 \leq N \leq 5 \times 10^5$ - $1 \leq A_i \leq N$ ## 样例解释 1 共有以下 $11$ 个: - $(1,1),\ (1,2),\ (1,3),\ (1,4),\ (1,5),\ (1,6),\ (3,3),\ (3,4),\ (3,5),\ (3,6),\ (5,5)$ ## 样例解释 2 所有连续子序列都是可生成的。 由 ChatGPT 4.1 翻译