Pagini recente » Cod sursa (job #687426) | Cod sursa (job #2191498) | Cod sursa (job #394625) | Cod sursa (job #2864820) | Cod sursa (job #2858540)
#include <bits/stdc++.h>
#define nmax (2<<20)+5
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
unordered_map<int64_t,int> m;
int64_t v[nmax];
int freq[nmax];
int n;
int64_t f(int lim)
{
memset(freq,0,sizeof freq);
int64_t res=0;
int elem=0;
int j=0;
for(int i=0;i<n;i++)
{
if(freq[m[v[i]]]==0)
{
elem++;
}
freq[m[v[i]]]++;
while(j<=i&&elem>lim)
{
freq[m[v[j]]]--;
if(freq[m[v[j]]]==0)
{
elem--;
}
j++;
}
res+=(i-j+1);
}
return res;
}
int main()
{
int l,u;
in>>n>>l>>u;
int nrnorm=0;
for(int i=0;i<n;i++)
{
in>>v[i];
if(!m[v[i]])m[v[i]]=nrnorm++;
}
out<<f(u)-f(l-1);
}