Pagini recente » Cod sursa (job #2944694) | Cod sursa (job #2770907) | Cod sursa (job #3149895) | Cod sursa (job #2769650) | Cod sursa (job #2906381)
#include <iostream>
#include <vector>
#include <fstream>
#include <unordered_map>
using namespace std;
int n, l, u;
vector <long long> v;
void Citire() {
ifstream f("secv5.in");
f >> n >> l >> u;
v.resize(n);
for(int i = 0; i < n; i++) {
f >> v[i];
}
f.close();
}
long long NrSecv(int k) {
unordered_map <long long , int> valori;
long long nr_secv = 0;
int last = 0;
for(int i = 0; i < n; i++) {
valori[v[i]]++;
// cout << "Marime: " << valori.size() << '\n';
while(valori.size() > k) {
valori[v[last]]--;
if(valori[v[last]] == 0)
valori.erase(v[last]);
last++;
}
nr_secv += (i - last + 1);
}
return nr_secv;
}
void Afisare() {
ofstream g("secv5.out");
g << NrSecv(u) - NrSecv(l - 1);
g.close();
}
int main() {
Citire();
Afisare();
return 0;
}