Pagini recente » Cod sursa (job #510726) | Cod sursa (job #1722900) | Cod sursa (job #196557) | Cod sursa (job #687851) | Cod sursa (job #1320154)
#include <iostream>
#include <fstream>
#include <cstdio>
#include <unordered_map>
using namespace std;
const int NMax = (1<<20) + 1;
unsigned int n;
unsigned int a[NMax];
unordered_map<unsigned int,unsigned int> myhashmap;
long long int until(int x)
{
myhashmap.clear();
long long int sum=0;
unsigned int j = 1;
for(unsigned int i = 1 ; i <= n; i++)
{
myhashmap[a[i]]++;
if(x<myhashmap.size())
{
unsigned int nr = myhashmap[a[j]];
myhashmap.erase(a[j]);
j = j + nr ;
}
sum = sum + (i - j + 1);
}
return sum;
}
int main()
{
int l,u,i;
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
cin>>n>>l>>u;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
cout<<until(u)-until(l-1);
}