Pagini recente » Cod sursa (job #3160160) | Cod sursa (job #3191580) | Cod sursa (job #2514599) | Cod sursa (job #3233746) | Cod sursa (job #2130445)
#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];
int viz[maxn];
int get(int r) {
int res = 0;
int ptr1 = 0;
int ptr2 = 0;
int current = 0;
for(int ptr1 = 0;ptr1<n;++ptr1) {
while(ptr2 < n) {
if(viz[a[ptr2]] == 0 && current == r) break;
if(viz[a[ptr2]] == 0) current++;
viz[a[ptr2]]++;
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;
}