Pagini recente » Cod sursa (job #2667911) | Cod sursa (job #2611121) | Cod sursa (job #2752208) | Cod sursa (job #2818205) | Cod sursa (job #32693)
Cod sursa(job #32693)
#include<stdio.h>
main()
{
long a[5001],c[5001],d[5001],i,j,k,l,n,m,s,x;
long sp,valid,inc,fin,avemsol=0;
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
fscanf(stdin,"%ld%ld",&n,&a[1]);
c[1]=a[1];c[0]=1;
for(i=2;i<=n;i++)
{ fscanf(stdin,"%ld",&a[i]);
valid=0;
for(j=1;(j<=c[0])&&(valid==0);j++)
if(a[i]==c[j])valid=1;
if(valid==0) { c[0]++; c[c[0]]=a[i];}
}
i=1;
do{
if(c[i]>c[i+1]){sp=c[i];c[i]=c[i+1];c[i+1]=sp; i-=2; }
i++;
if(i<1)i=1;
}while(i<c[0]);
d[0]=0;
for(i=1;i<=n;i++)
if(a[i]==c[1]){d[0]++;d[d[0]]=i;}
long xmax=0;
i=1;j=1;k=1;
do{
i=d[k];k++;
j=1;avemsol=0;
do{
valid=0;
do{
if(a[i]==c[j]){valid=1;fin=i;
if(j==1)inc=i;
if(j==c[0])avemsol=1;
}
i++;
}while((i<=n)&&(valid==0));
if(valid==0){j=c[0]+1;avemsol=0;}
j++;
}while((j<=c[0])&&(i<=n));
if(avemsol==1) { x=fin-inc;x++;
if(x>xmax)xmax=x;
}
}while(k<=d[0]);
if(xmax==0)fprintf(stdout,"%ld",(xmax-1));
else fprintf(stdout,"%ld",xmax);
fclose(stdin);
fclose(stdout);
return 0;
}