将小于m的数为0,其余数为1,只要区间中1的个数大于k即可
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;
#define N 200050
int a[N];
int main()
{
int T,n,m,k;
scanf("%d",&T);
while(T--)
{
scanf("%d %d %d",&n,&m,&k);
int t=0;
long long sum=0;
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
int r=1,num=0;
for(int i=1;i<=n;i++)
{
while(r<=n&&num<k)
{
if(a[r]>=m) num++;
r++;
}
if(num>=k) sum+=n-(r-1)+1;
if(a[i]>=m) num--;
}
printf("%lld\n",sum);
}
return 0;
}