Pagini recente » Cod sursa (job #3198760) | Cod sursa (job #3174278) | Cod sursa (job #1204228) | Cod sursa (job #2035081) | Cod sursa (job #3270448)
#include <fstream>
#include <map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int v[1100005];
map <int, int> m;
int main()
{
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;
}