题目描述
给定一个正整数序列 S 和正整数 k、l,如果满足以下条件之一,则称 S 属于 level (k,l):
- S 的长度为 1,并且唯一的元素为 k。
- 存在属于 level (k−1,l) 的序列 T1,T2,...,Tm(m≥l),使得按照 T1,T2,...,Tm 的顺序连接得到的字符串与 S 相等。
注意当 k=1 时,第二个条件无效,也就是说,只有满足第一个条件的序列才属于 level (1,l)。
给定正整数序列 A1,A2,...,AN 和正整数 L。请找出满足以下条件的子序列 Ai,Ai+1,...,Aj(1≤i≤j≤N)的个数:
- 存在正整数 K,使得序列 Ai,Ai+1,...,Aj 属于 level (K,L)。
约束条件
- 1≤N≤2×105
- 2≤L≤N
- 1≤Ai≤109
输入
输入通过标准输入给出,格式如下:
N L
A1 A2 ... AN
输出
打印出满足条件的子序列 Ai,Ai+1,...,Aj(1≤i≤j≤N)的个数。
示例输入 1
9 3
2 1 1 1 1 1 1 2 3
示例输出 1
22
例如,序列 (1,1,1) 和 (2) 都属于 level (2,3),因此序列 (2,1,1,1,1,1,1) 属于 level (3,3)。
示例输入 2
9 2
2 1 1 1 1 1 1 2 3
示例输出 2
41
示例输入 3
15 3
4 3 2 1 1 1 2 3 2 2 1 1 1 2 2
示例输出 3
31