Pagini recente » Cod sursa (job #2747822) | Cod sursa (job #98003) | Cod sursa (job #229607) | Cod sursa (job #526961) | Cod sursa (job #3128458)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
long long n, l, u;
long long v[1050000];
void Citire();
long long Perechi(int k);
void Afisare();
int main()
{
Citire();
Afisare();
return 0;
}
void Citire()
{
fin >> n >> l >> u;
for(long long i = 0; i < n; i++)
fin >> v[i];
}
long long Perechi(int k)
{
long long st = 0, dr, sol = 0, cnt = 0;
unordered_map<int, int> umap;
for(dr = 0; dr < n; dr++)
{
if(umap[v[dr]] == 0)
cnt++;
umap[v[dr]]++;
while(cnt > k && st <= dr)
{
umap[v[st]]--;
if(umap[v[st]] == 0)
cnt--;
st++;
}
sol += dr - st + 1;
}
return sol;
}
void Afisare()
{
fout << Perechi(u) - Perechi(l - 1);
}