Pagini recente » Cod sursa (job #2166783) | Cod sursa (job #2836285) | Cod sursa (job #2657589) | Cod sursa (job #2251589) | Cod sursa (job #3285895)
#include<bits/stdc++.h>
using namespace std;
//#define in cin
//#define out cout
ifstream in("secv5.in");
ofstream out("secv5.out");
int a[(1<<20)+1],n,L,U,dif;
unordered_map<int,int> f;
void dist(int a){
if(f[a]==0) dif++;
f[a]++;
}
void redist(int a){
if(f[a]==1) dif--;
f[a]--;
}
int rez(int x){
int l,r,ans;
l=r=dif=ans=0;
f.clear();
while(r<n){
dist(a[r]);
while(dif>x){
redist(a[l]);
l++;
}
if(l>r) r=l;
else r++;
ans+=r-l;
}
return ans;
}
int main(){
in>>n>>L>>U;
for(int i=1;i<=n;i++) in>>a[i];
out<<rez(U)-rez(L-1);
}