Pagini recente » Cod sursa (job #2976685) | Cod sursa (job #931643) | Cod sursa (job #949863) | Cod sursa (job #386877) | Cod sursa (job #29026)
Cod sursa(job #29026)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <map>
using namespace std;
#define nmax 1050000
long long l,u,n,i,j;
unsigned a[nmax];
int nr;
long long rr,sol;
map<int,int> h;
long long solve(int x)
{
i=nr=rr=0;
for (j=0;j<n;++j)
{
if (h[a[j]]==0)
++nr;
++h[a[j]];
while (nr>x)
{
if (h[a[i]]==1)
--nr;
--h[a[i]];
++i;
}
rr+=j-i+1;
}
for (;i<n;++i)
--h[a[i]];
return rr;
}
int main()
{
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
scanf("%lld%lld%lld",&n,&l,&u);
for (i=0;i<n;i++)
scanf("%u",a+i);
sol=solve(u)-solve(l-1);
printf("%lld\n",sol);
return 0;
}