Pagini recente » Cod sursa (job #1656783) | Cod sursa (job #2549546) | Cod sursa (job #881544) | Cod sursa (job #315433) | Cod sursa (job #2886918)
#include <iostream>
#include <unordered_map>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
const int maxi=(1<<20)+10;
unsigned int v[maxi], N, L, U;
unsigned long determinaresubsec(unsigned k, unsigned int v[maxi])
{
unordered_map<unsigned,int>subsecv;
unsigned long nrsubsec=0, j=0;
for (int i=0;i<N;i++)
{
subsecv[v[i]]++;
while(subsecv.size()>k){
subsecv[v[j]]--;
if(subsecv[v[j]]==0){
subsecv.erase(subsecv.find(v[j]));
}
j++;
}
nrsubsec+=(i-j+1);
}
return nrsubsec;
}
int main()
{
fin >> N >> L >> U;
for (int i=0;i<N;i++)
{
fin >> v[i];
}
fout << determinaresubsec(U,v)- determinaresubsec(L-1,v) << endl;
return 0;
}