Pagini recente » Cod sursa (job #185674) | Cod sursa (job #2165413) | Cod sursa (job #259243) | Cod sursa (job #59228) | Cod sursa (job #2130465)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
#define cin fin
#define cout fout
const int maxn = (1<<21) + 4;
int n,l,r;
int a[maxn];
map<int,int> viz;
int get(int r) {
int res = 0;
int ptr2 = 0;
int current = 0;
viz.clear();
for(int ptr1 = 0;ptr1<n;++ptr1) {
while(ptr2 < n) {
if(viz[a[ptr2]] == 0 && current == r) break;
viz[a[ptr2]]++;
if(viz[a[ptr2]] == 1) current++;
ptr2++;
}
res += ptr2 - ptr1;
viz[a[ptr1]]--;
if(viz[a[ptr1]] == 0) current--;
}
return res;
}
signed main() {
cin >> n >> l >> r;
for(int i=0;i<n;++i) {
cin >> a[i];
}
cout << get(r) - get(l-1) << '\n';
return 0;
}