Pagini recente » Cod sursa (job #2173688) | Cod sursa (job #3284266) | Cod sursa (job #1194922) | Cod sursa (job #3192403) | Cod sursa (job #3270454)
#include <bits/stdc++.h>
using namespace std;
long long v[1050000];
unordered_map <long long, int> m;
int main()
{
ifstream cin("secv5.in");
ofstream cout("secv5.out");
long long n, l, u, val, cnt;
cin >> n >> l >> u;
for(int i = 0; i < n; i++){
cin >> v[i];
}
val = cnt = 0;
int x, y;
x = y = 0;
val = 0;
while(y < n){
m[v[y]]++;
if(m[v[y]] == 1){
val++;
}
while(val > u){
m[v[x]]--;
if(m[v[x]] == 0){
val--;
}
x++;
}
cnt += y - x;
y++;
}
x = y = 0;
m.clear();
val = 0;
while(y < n){
m[v[y]]++;
if(m[v[y]] == 1){
val++;
}
while(val >= l){
m[v[x]]--;
if(m[v[x]] == 0){
val--;
}
x++;
}
cnt -= y - x;
y++;
}
cout << cnt;
return 0;
}