题目描述
定义正整数序列 S 属于等级 (k,l),当且仅当满足以下任一条件:
- S 的元素个数为 1,且该元素的值为 k。
- 存在属于等级 (k−1,l) 的数列 T1,T2,…,Tm(m≥l),将 T1,T2,…,Tm 按顺序连接后得到的数列与 S 完全一致。
注意,当 k=1 时,第二个条件没有意义,因此等级 (1,l) 的正整数序列只能满足第一个条件。
给定正整数序列 A1,A2,…,AN 和正整数 L。请计算满足下述条件的子序列 Ai,Ai+1,…,Aj(1≤i≤j≤N)的个数:
- 存在某个正整数 K,使得数列 Ai,Ai+1,…,Aj 属于等级 (K,L)。
输入格式
输入从标准输入中按以下格式给出。
N L A1 A2 … AN
输出格式
输出满足条件的子序列的个数。
样例 1
输入
9 3
2 1 1 1 1 1 1 2 3
输出
22
样例 2
输入
9 2
2 1 1 1 1 1 1 2 3
输出
41
样例 3
输入
15 3
4 3 2 1 1 1 2 3 2 2 1 1 1 2 2
输出
31
说明/提示
限制条件
- 1≤N≤2×105
- 2≤L≤N
- 1≤Ai≤109
样例说明 1
例如,数列 (1,1,1) 和 (2) 都属于等级 (2,3),因此数列 (2,1,1,1,1,1,1) 属于等级 (3,3)。
由 ChatGPT 4.1 翻译