Pagini recente » Cod sursa (job #274504) | Cod sursa (job #3233079) | Cod sursa (job #2208176) | Cod sursa (job #1452983) | Cod sursa (job #1565449)
#include <fstream>
#include <map>
#include <iostream>
#include <vector>
using namespace std;
int n;
vector<long long int> a;
map<long long int,long long int> hashMap;
long long int nrSecv(int upper)
{
hashMap.clear();
long long int secv = 0, j = 0;
for(int i = 0; i < n; i++)
{
hashMap[a[i]]++;
while(hashMap.size() > upper)
{
hashMap[a[j]]--;
if(!hashMap[a[j]])
hashMap.erase(a[j]);
j++;
}
secv += (i - j + 1);
}
return secv;
}
int main()
{
int l, u;
ifstream in("secv5.in");
in >> n >> l >> u;
for(int i = 0; i < n; i++)
{
long long int x;
in >> x;
a.push_back(x);
}
in.close();
ofstream out("secv5.out");
out << nrSecv(u) - nrSecv(l - 1);
out.close();
}