Pagini recente » Cod sursa (job #1434280) | Cod sursa (job #3128848) | Cod sursa (job #364112) | Cod sursa (job #2599992) | Cod sursa (job #3285912)
#include<bits/stdc++.h>
using namespace std;
//#define in cin
//#define out cout
#define int long long
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;
dif=ans=0;
l=r=1;
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;
}
int32_t main(){
in>>n>>L>>U;
for(int i=1;i<=n;i++) in>>a[i];
out<<rez(U)-rez(L-1);
}