Pagini recente » Cod sursa (job #3257119) | Cod sursa (job #2732479) | Cod sursa (job #1312098) | Cod sursa (job #1772807) | Cod sursa (job #3325486)
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
using namespace std;
#define ll long long
unsigned int a[1048577]; // 2^20 + 1
int n;
ll func(int c) {
ll ans = 0;
int l = 1, r, nr_dist = 0;
unordered_map<unsigned int, int> freq;
for (r = 1; r <= n; r++) {
freq[a[r]]++;
if (freq[a[r]] == 1)
nr_dist++;
while (l <= r && nr_dist > c) {
freq[a[l]]--;
if (freq[a[l]] == 0) {
freq.erase(a[l]);
nr_dist--;
}
l++;
}
ans+=(r-l+1);
}
return ans;
}
int main(void) {
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int L, U, i;
cin >> n >> L >> U;
for (i = 1; i <= n; i++)
cin >> a[i];
cout << func(U)-func(L-1);
return 0;
}