基本思想:Map+窗口
#include<iostream>
#include<vector>
#include<cmath>
#include<cstring>
#include<map>
using namespace std;
int main()
{
int n,k,t;cin>>n>>k>>t;
vector<int> a;
int c;
while(cin>>c){
a.push_back(c);
if(cin.get()=='\n')
break;
}
int res=0;
int p1=0,p2=k-1;
map<int,int> tmp;
for(int i=p1;i<=p2;i++){
tmp[a[i]]++;
}
map<int,int>::iterator it;
for(it=tmp.begin();it!=tmp.end();it++){
if(it->second>=t){
res++;
}
}
while(p2<a.size()-1){
tmp[a[p1]]--;
p1++;p2++;
tmp[a[p2]]++;
int g=p1;
while(g<=p2){
if(tmp[a[g]]>=t){
res++;
break;
}
g++;
}
}
cout<<res<<endl;
return 0;
}