Pagini recente » Cod sursa (job #1136874) | Cod sursa (job #2366027) | Cod sursa (job #1625425) | Cod sursa (job #3141443) | Cod sursa (job #1282832)
#include <bits/stdc++.h>
using namespace std;
vector <long long> v;
long long ans(int x) {
int n = (int)v.size();
unordered_map<int, int> s;
long long res = 0;
int j = 0;
for (int i = 0; i < n; ++i) {
s[v[i]]++;
while ((int)s.size() > x) {
if (s[v[j]] == 1) {
s.erase(v[j]);
} else {
s[v[j]]--;
}
j++;
}
res += (i - j + 1);
}
return res;
}
int main() {
ifstream in("secv5.in");
ofstream out("secv5.out");
int N, L, U;
in >> N >> L >> U;
v.resize(N);
for (int i = 0; i < N; ++i) {
in >> v[i];
}
cout << ans(U) - ans(L - 1) << "\n";
in.close();
out.close();
return 0;
}