Pagini recente » Cod sursa (job #621728) | Cod sursa (job #1309295) | Cod sursa (job #924029) | Cod sursa (job #1975670) | Cod sursa (job #3128455)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int n, l, u;
int v[1050000];
void Citire();
int Perechi(int k);
void Afisare();
int main()
{
Citire();
Afisare();
return 0;
}
void Citire()
{
fin >> n >> l >> u;
for(int i = 0; i < n; i++)
fin >> v[i];
}
int Perechi(int k)
{
int 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);
}