Pagini recente » Cod sursa (job #1839647) | Cod sursa (job #2245813) | Cod sursa (job #1456104) | Cod sursa (job #1555455) | Cod sursa (job #3171089)
#include <fstream>
#include <map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
map<int,int> frv;
int v[1048577];
int main()
{
int n,rasp=0,cnt=1,i,j,u,l;
cin>>n>>u>>l;
u--;
for(i=1;i<=n;i++) cin>>v[i];
j=1;
frv[v[1]]=1;
///pana la l
for(i=1;i<=n;i++){
while(j<=n && cnt<=l){
j++;
if(j<=n){
if(frv[v[j]]==0) cnt++;
frv[v[j]]++;
}
}
rasp+=j-i;
frv[v[i]]--;
if(frv[v[i]]==0) cnt--;
}
frv.clear();
///pana la u-1
j=1;
frv[v[1]]=1;
for(i=1;i<=n;i++){
while(j<=n && cnt<=u-1){
j++;
if(j<=n){
if(frv[v[j]]==0) cnt++;
frv[v[j]]++;
}
}
rasp-=(j-i);
frv[v[i]]--;
if(frv[v[i]]==0) cnt--;
}
cout<<rasp;
return 0;
}