Pagini recente » Cod sursa (job #2503271) | Cod sursa (job #317502) | Cod sursa (job #802735) | Cod sursa (job #3192319) | Cod sursa (job #2863607)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
const int MAX=1<<20+1;
int n,v[MAX],i,st,dr,u,l;
long long cnt;
unordered_map < unsigned int , int > ap;
long long secv(int k)
{
ap.clear();
st=1;
cnt=0;
for(dr=1;dr<=n;dr++)
{
ap[v[dr]]++;
while(ap.size()>k)
{
ap[v[st]]--;
if(!ap[v[st]])
ap.erase(v[st]);
st++;
}
cnt+=dr-st+1LL;
}
return cnt;
}
int main()
{
fin >> n >> l >> u;
for(i=1;i<=n;i++)
fin >> v[i];
fout << secv(u)-secv(l-1);
return 0;
}