Pagini recente » Cod sursa (job #2814570) | Cod sursa (job #3312832) | Cod sursa (job #3264908) | Cod sursa (job #2346089) | Cod sursa (job #3350035)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
// numara subsecventele cu cel mult k elemente distincte
long long nr_subsecv(vector<long long>& a, int n, int k) {
unordered_map<long long, int> freq;
long long rez = 0;
int st = 0;
for (int dr = 0; dr < n; dr++) {
freq[a[dr]]++;
while (freq.size() > k) {
freq[a[st]]--;
if (freq[a[st]] == 0) freq.erase(a[st]);
st++;
}
rez += dr - st + 1;
}
return rez;
}
int main() {
int n, l, u;
fin >> n >> l >> u;
vector<long long> a(n);
for (int i = 0; i < n; i++) {
fin >> a[i];
}
fout << nr_subsecv(a, n, u) - nr_subsecv(a, n, l - 1);
}