Pagini recente » Cod sursa (job #2671655) | Cod sursa (job #616125) | Cod sursa (job #818465) | Cod sursa (job #2666389) | Cod sursa (job #2886932)
#include <iostream>
#include <unordered_map>
#include <vector>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
vector <long long> v;
unsigned int N, L, U;
unsigned long long determinaresubsec(unsigned k)
{
unordered_map<long,long>subsecv;
unsigned long nrsubsec=0, j=0;
for (long 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;
v.resize(N);
for (long i=0;i<N;i++)
{
fin >> v[i];
}
fout << determinaresubsec(U)- determinaresubsec(L-1) << endl;
return 0;
}