Pagini recente » Cod sursa (job #327186) | Cod sursa (job #2754922) | Cod sursa (job #2048065) | Cod sursa (job #2555773) | Cod sursa (job #216400)
Cod sursa(job #216400)
#define sz 2<<20
//#include<vector>
//using namespace std;
//vector<bool> s(2<<30,false);
#include<stdio.h>
int n,v,lv,nr,app[sz],stk[sz];
int see(int k)
{
for(int i=0;i<nr;i++)
if(k==stk[i])
return 1;
return 0;
}
int main()
{
int i,l,u,last,ilast,nr;
l=u=0;
freopen("secv5.in","r",stdin);
freopen("secv5.out","w",stdout);
last=ilast=0;
scanf("%d%d%d%d",&n,&l,&u,&lv);
app[0]=1;
int sum=0;
nr=0;
stk[nr]=lv;
nr++;
int count=0,k=0;
for(i=1;i<n;i++)
{
scanf("%d",&v);
if(v!=lv&&!see(v))
app[i]=app[i-1]+1;
else
app[i]=app[i-1];
stk[nr]=v;
nr++;
lv=v;
if(app[i]-k>=l&&app[i]-k<=u)
{
if(!last && app[i]-k==(l-1)+app[ilast]-k)
{
last==1+((i+1-k)-(app[i]-k));
sum=sum+last;
ilast=i;
count=l;
}
else
if(count<=u)
{
sum+=last;
if(count==u)
{
k=last;
last=0;
}
count++;
}
}
}
printf("%d",sum);
return 0;
}