Pagini recente » Cod sursa (job #1369954) | Cod sursa (job #2067536) | Cod sursa (job #1448021) | Cod sursa (job #2108083) | Cod sursa (job #1320157)
#include <iostream>
#include <fstream>
#include <cstdio>
#include <unordered_map>
using namespace std;
const int NMax = (1<<20) + 1;
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;
int j = 1;
for( int i = 1 ; i <= n; i++)
{
myhashmap[a[i]]++;
while(x<myhashmap.size())
{
myhashmap[a[j]]--;
if(myhashmap[a[j]]==0)
myhashmap.erase(a[j]);
j++;
}
sum = sum + (i - j + 1);
}
return sum;
}
int main()
{
unsigned 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);
}