#agc037f. [agc037_f]Counting of Subarrays

[agc037_f]Counting of Subarrays

题目描述

给定一个正整数序列 SS 和正整数 kkll,如果满足以下条件之一,则称 SS 属于 level (k,l)(k,l)

  • SS 的长度为 11,并且唯一的元素为 kk
  • 存在属于 level (k1,l)(k-1,l) 的序列 T1,T2,...,TmT_1,T_2,...,T_mmlm \geq l),使得按照 T1,T2,...,TmT_1,T_2,...,T_m 的顺序连接得到的字符串与 SS 相等。

注意当 k=1k=1 时,第二个条件无效,也就是说,只有满足第一个条件的序列才属于 level (1,l)(1,l)

给定正整数序列 A1,A2,...,ANA_1,A_2,...,A_N 和正整数 LL。请找出满足以下条件的子序列 Ai,Ai+1,...,AjA_i,A_{i+1},...,A_j1ijN1 \leq i \leq j \leq N)的个数:

  • 存在正整数 KK,使得序列 Ai,Ai+1,...,AjA_i,A_{i+1},...,A_j 属于 level (K,L)(K,L)

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 2LN2 \leq L \leq N
  • 1Ai1091 \leq A_i \leq 10^9

输入

输入通过标准输入给出,格式如下:

NN LL A1A_1 A2A_2 ...... ANA_N

输出

打印出满足条件的子序列 Ai,Ai+1,...,AjA_i,A_{i+1},...,A_j1ijN1 \leq i \leq j \leq N)的个数。


示例输入 1

9 3
2 1 1 1 1 1 1 2 3

示例输出 1

22

例如,序列 (1,1,1)(1,1,1)(2)(2) 都属于 level (2,3)(2,3),因此序列 (2,1,1,1,1,1,1)(2,1,1,1,1,1,1) 属于 level (3,3)(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