Pagini recente » Cod sursa (job #261899) | Cod sursa (job #1942593) | Cod sursa (job #1614382) | Cod sursa (job #1546312) | Cod sursa (job #32684)
Cod sursa(job #32684)
#include<stdio.h>
main()
{
long 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,"%lld%lld",&n,&a[1]);
c[1]=a[1];c[0]=1;
for(i=2;i<=n;i++)
{ fscanf(stdin,"%lld",&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,"%lld",(xmax-1));
else fprintf(stdout,"%lld",xmax);
fclose(stdin);
fclose(stdout);
return 0;
}