Pagini recente » Cod sursa (job #223988) | Cod sursa (job #2196432) | Cod sursa (job #2404756) | Cod sursa (job #1698423) | Cod sursa (job #1282841)
#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", &N);
fscanf(in, "%d", &L);
fscanf(in, "%d", &U);
v.resize(N);
for (int i = 0; i < N; ++i) {
fscanf(in, "%ld", &v[i]);
}
fprintf(out, "%ld\n", ans(U) - ans(L - 1));
fclose(in);
fclose(out);
return 0;
}