Pagini recente » Cod sursa (job #214984) | Cod sursa (job #1786716) | Cod sursa (job #1904059) | Cod sursa (job #1473535) | Cod sursa (job #3171232)
#include <bits/stdc++.h>
#include <unordered_map>
const int NMAX=1e7;
using namespace std;
long long v[NMAX + 1];
int n;
int cate(int max){
unordered_map<long long, int> frecv;
int l, r, dis, cnt;
l = r = dis = cnt = 0;
while(r <n){
frecv[v[r]]++;
if(frecv[v[r]] == 1){
dis++;
}
r++;
while(dis > max){
frecv[v[l]]--;
if(frecv[v[l]] == 0){
dis--;
}
l++;
}
cnt+= r - l;
}
return cnt;
}
int main(){
int x, y, i;
ifstream cin("secv5.in");
cin>>n>>x>>y;
for(i=0;i<n;i++){
cin>>v[i];
}
cin.close();
ofstream cout("secv5.out");
cout<<cate(y) - cate(x - 1);
cout.close();
return 0;
}