Pagini recente » Cod sursa (job #620997) | Cod sursa (job #2348538) | Cod sursa (job #3001696) | Cod sursa (job #2753188) | Cod sursa (job #1282847)
#include <bits/stdc++.h>
using namespace std;
vector <long long> v;
long long ans(int x) {
int n = (int)v.size();
unordered_map<long long, 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() {
FILE *in = fopen("secv5.in", "r");
FILE *out = fopen("secv5.out", "w");
int N, L, U;
fscanf(in, "%d%d%d", &N, &L, &U);
v.resize(N);
for (int i = 0; i < N; ++i) {
fscanf(in, "%lld", &v[i]);
}
fprintf(out, "%lld\n", ans(U) - ans(L - 1));
fclose(in);
fclose(out);
return 0;
}