#CSES2428. 子数组的不同值

子数组的不同值

题目背景

翻译自 CSES-2428 题。

题目描述

给定一个由 nn 个整数构成的数组,任务是计算数组中包含至多 kk 个不同值的子数组的个数。

本题中子数组定义为:任意给定一个数组下标 l,r(1lrn)l,r(1\le l\le r\le n),得到的区间 [l,r][l,r] 中的数组元素 al,al+1,,ara_{l},a_{l+1},\cdots,a_r。即可以理解成连续子序列。

输入格式

第一行输入两个整数 nnkk,分别代表数组的大小和最多允许的不同值的个数。

第二行输入 nn 个整数 x1,x2,...,xnx_1, x_2, ..., x_n,代表数组的值。

输出格式

输出一个整数,表示包含至多 kk 个不同值的子数组的个数。

样例

5 2
1 2 3 1 1
10

说明/提示

1kn2105,1xi1091 \le k \leq n \le 2\cdot 10^5,1 \leq x_i \le 10^9