#707. 古人隐藏的知识

古人隐藏的知识

题目描述

在 Deepwoken 的世界里,存在一件远古神器——无限知识石板,上面刻着长度为 nn 的神秘符号序列(每个符号是一个整数)。

传说要发现神器的真正力量,需要找出所有神圣片段——即连续区间,其包含恰好 kk 个不同的数,且长度在 llrr(含)之间。

形式化描述:给定序列 aa(长度为 nn)以及整数 k,l,rk,l,r,统计满足以下条件的区间端点 b,cb,c 的数量:

  • 1bcn1\le b\le c\le n
  • 子数组 [ab,ab+1,,ac][a_b,a_{b+1},\dots,a_c] 中恰好包含 kk 个不同的数;
  • lcb+1rl\le c-b+1\le r

输入格式

  • 第一行包含一个整数 tt1t1041\le t\le 10^4),表示测试用例数。

  • 接下来描述 tt 个测试用例。每个测试用例包含两行:

    • 第一行包含四个整数 n,k,l,rn,k,l,r,满足 1kn21051\le k\le n\le 2\cdot 10^51lrn1\le l\le r\le n
    • 第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,满足 1ai1091\le a_i\le 10^9

数据保证所有测试用例中 nn 的总和不超过 21052\cdot 10^5

输出格式

对于每个测试用例,输出一行,包含一个整数——满足条件的连续子数组的数量。

样例输入

5
1 1 1 1
5
5 2 2 3
1 2 1 3 2
6 3 1 6
1 2 3 1 2 3
4 1 1 2
7 7 7 7
7 3 2 4
1 2 1 2 3 2 1

样例输出

1
5
10
7
5

说明

样例解释

  • 样例 11a=[5]a=[5],只有子数组 [5][5],长度 11 且包含恰好 11 个不同数,计数为 11
  • 样例 44a=[7,7,7,7]a=[7,7,7,7],任一相同数的子数组都包含恰好 11 个不同数,长度允许为 1122,共有 44 个长度 11 子数组与 33 个长度 22 子数组,共 77
  • 样例 55a=[1,2,1,2,3,2,1]a=[1,2,1,2,3,2,1],列举符合 k=3,l=2,r=4k=3,l=2,r=4 的所有子数组后共有 55 个。