Pagini recente » Cod sursa (job #384971) | Cod sursa (job #2423835) | Cod sursa (job #1040654) | Cod sursa (job #2746274) | Cod sursa (job #2479115)
#include<cstdio>
#include<unordered_map>
using namespace std;
const int NMAX=(1<<20)+10;
int n;
unsigned int v[NMAX];
long long nr_secv(const int &lg){
long long nr_sol=0;
unordered_map <unsigned int, int> mp;
for(int i=1,j=1;j<=n;j++){
mp[v[j]]++;
while((int)mp.size()>lg){
mp[v[i]]--;
if(mp[v[i]]==0)
mp.erase(v[i]);
i++;
}
nr_sol=1LL*nr_sol+j-i+1;
}
return nr_sol;
}
int main(){
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
int l,u;
scanf("%d%d%d", &n, &l, &u);
for(int i=1;i<=n;i++)
scanf("%d", &v[i]);
printf("%d", nr_secv(u)-nr_secv(l-1));
return 0;
}