Pagini recente » Cod sursa (job #517835) | Cod sursa (job #313311) | Cod sursa (job #2536427) | Cod sursa (job #1496941) | Cod sursa (job #2608831)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout("secv5.out");
int n, l, u;
unsigned int a[1050000];
long long secvente(int x)
{
unordered_map<unsigned int, int> f;
int lo = 0, hi = 0;
long long rez = 0, dist = 0;
while(hi < n)
{
if(f[a[hi]] == 0) dist++;
f[a[hi]]++;
while(dist > x)
{
if(--f[a[lo]] == 0)
{
dist--;
f.erase(a[lo]);
}
++lo;
}
rez += hi-lo+1;
hi++;
}
return rez;
}
int main()
{
fin >> n >> l >> u;
for(int i = 0; i < n; i++)
{
fin >> a[i];
}
fout << secvente(u) - secvente(l-1);
return 0;
}