Pagini recente » Cod sursa (job #1922110) | Cod sursa (job #1826918) | Cod sursa (job #1137033) | Cod sursa (job #1919871) | Cod sursa (job #1786893)
#include <iostream>
#include<cstdio>
#define MOD 666013
using namespace std;
int h[MOD+5],n,a,b,i,x,v[1000010],nr,vf[1000000],L[1000010];
inline int normalizare(int x)
{
if(!h[x%MOD])
{
nr++;
h[x%MOD]=nr;
//vf[nr]++;
x=nr;
}
else
{
// vf[h[x%MOD]]++;
x=h[x%MOD];
}
return x;
}
inline int procedura(int a)
{
for(i=1;i<=n;i++)
vf[v[i]]=0;
int p=1,nr=0,sum=0;
for(i=1;i<=n;i++)
{
vf[v[i]]++;
if(vf[v[i]]==1)
{
nr++;
while(nr>a)
{
vf[v[p]]--;
if(!vf[v[p]])
nr--;
p++;
}
}
L[i]=p;
sum=sum+(i-L[i]-1);
}
return sum;
}
int main()
{
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
cin>>n>>a>>b;
for(i=1;i<=n;i++)
{
cin>>x;
v[i]=normalizare(x);
}
cout<<procedura(b)-procedura(a-1);
}