Pagini recente » Cod sursa (job #2967157) | Cod sursa (job #2600067) | Cod sursa (job #2257347) | Cod sursa (job #1331675) | Cod sursa (job #2608806)
#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)
{
f[a[lo]]--;
if(f[a[lo]] == 0) dist--;
lo++;
}
if(dist <= x)
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;
}