Pagini recente » Cod sursa (job #1418678) | Cod sursa (job #865871) | Cod sursa (job #1039834) | Cod sursa (job #1507897) | Cod sursa (job #2038987)
#include <bits/stdc++.h>
using namespace std;
const int NMAX=(1<<20)+5;
int n,L,U;
unsigned a[NMAX];
inline long long Secv(int lug)
{
int j=1,s=0;
long long sol=0;
unordered_map<unsigned,int>c;
for(int i=1; i<=n; i++)
{
unsigned x=a[i];
c[x]++;
s+=(c[x]==1);
while(s>lug)
{
unsigned y=a[j];
c[y]--;
s-=(c[y]==0);
j++;
}
sol=sol+(i-j+1);
}
return sol;
}
int main()
{
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
scanf("%d%d%d",&n,&L,&U);
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
long long x,y,sol;
x=Secv(U);
y=Secv(L-1);
sol=x-y;
printf("%lld\n",sol);
return 0;
}