Pagini recente » Cod sursa (job #2926890) | Cod sursa (job #1041356) | Cod sursa (job #2681890) | Cod sursa (job #1670931) | Cod sursa (job #1990283)
#include <bits/stdc++.h>
using namespace std;
const int N = 1234567;
int i, n, l, u, a[N], nr, freq[N];
map<int, int> M;
set<int> S;
long long solve(int nr) {
memset(freq, 0, sizeof(freq));
long long ans = 0;
int cnt = 0, i, j = 1;
for(i = 1; i <= n; ++i) {
++freq[a[i]];
if(freq[a[i]] == 1) ++cnt;
while(cnt > nr) {
--freq[a[j]]; ++j;
if(!freq[a[j - 1]]) --cnt;
}
ans += i - j + 1;
}
return ans;
}
int main() {
ifstream cin("secv5.in");
ofstream cout("secv5.out");
ios_base::sync_with_stdio(0);
cin >> n >> l >> u;
for(i = 1; i <= n; ++i) cin >> a[i], S.insert(a[i]);
for(auto it : S) M[it] = ++nr;
for(i = 1; i <= n; ++i) a[i] = M[a[i]];
cout << solve(u) - solve(l - 1) << '\n';
return 0;
}