Pagini recente » Monitorul de evaluare | Cod sursa (job #2790563) | Cod sursa (job #3315036) | Cod sursa (job #1857535) | Cod sursa (job #3325739)
#include<bits/stdc++.h>
using namespace std;
int n,x,y;
unsigned int v[1<<20];
long long f(int x){
long long cnt=0;
int dist=0;
unordered_map<unsigned int,int>frecv;
int l=1;
for(int r=1;r<=n;r++){
frecv[v[r]]++;
if(frecv[v[r]]==1)dist++;
while(l<=r&&dist>x){
frecv[v[l]]--;
if(frecv[v[l]]==0)dist--;
l++;
}
cnt+=r-l+1;
}
return cnt;
}
int main(){
ifstream cin("secv5.in");
ofstream cout("secv5.out");
cin>>n>>x>>y;
for(int i=1;i<=n;i++){
cin>>v[i];
}
long long nr=f(y)-f(x-1);
cout<<nr;
return 0;
}