Pagini recente » Cod sursa (job #1527752) | Cod sursa (job #2038661) | Cod sursa (job #2462371) | Cod sursa (job #635916) | Cod sursa (job #1284823)
#include <iostream>
#include <fstream>
#include <vector>
#include <bits/stdc++.h>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
const int NMAX = (1 << 20) + 1;
int n, l, u;
vector <int> v;
void citeste() {
f >> n >> l >> u;
v.push_back(0);
int x;
for (int i = 1; i <= n; i++) {
f >> x;
v.push_back(v[i]);
}
}
long long secvente(int x) {
unordered_map <int, int> h;
long long sol = 0;
int j = 1;
for (int i = 1; i <= n; i++) {
h[v[i]]++;
while((int)h.size() > x) {
h[v[j]]--;
if (h[v[j]] == 0) h.erase(v[j]);
j++;
}
sol += (i - j + 1);
}
return sol;
}
int main() {
citeste();
g << secvente(u) - secvente(l - 1) << '\n';
return 0;
}