Pagini recente » Cod sursa (job #1555181) | Cod sursa (job #1562248) | Cod sursa (job #2960898) | Cod sursa (job #2657498) | Cod sursa (job #2820889)
#include <bits/stdc++.h>
using namespace std;
inline void Open(const string Name) {
#ifndef ONLINE_JUDGE
(void)!freopen((Name + ".in").c_str(), "r", stdin);
(void)!freopen((Name + ".out").c_str(), "w", stdout);
#endif
}
int v[(1 << 20) + 1];
int N, L, U;
long long ans;
long long solve(int len) {
unordered_map <int, int> H;
long long ans = 0;
for(int i = 1, j = 1, cnt = 0;i <= N;i++) {
H[v[i]]++, cnt += (H[v[i]] == 1);
while(cnt > len) {
H[v[j]]--;
cnt -= (H[v[j]] == 0);
j++;
}
ans += i - j + 1;
}
return ans;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
Open("secv5");
cin >> N >> L >> U;
for(int i = 1, j = 1;i <= N;i++)
cin >> v[i];
cout << solve(U) - solve(L - 1);
return 0;
}