Pagini recente » Cod sursa (job #2199337) | Cod sursa (job #1849135) | Cod sursa (job #1020562) | Cod sursa (job #1533237) | Cod sursa (job #32680)
Cod sursa(job #32680)
#include<stdio.h>
main()
{
long a[5001],c[5001],d[5000],i,j,k,l,n,m,s,x,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;
valid=0;
k=1;
do{
i=d[k];k++;
j=1;
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));
j++;
}while((j<=c[0])&&(d!=0));
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;
}