Cod sursa(job #32674)

Utilizator kyrkDragos Dumitrescu kyrk Data 18 martie 2007 12:29:23
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<stdio.h>
main()
{
long a[5001],c[5001],i,j,k,l,n,m,s,x,sp,valid,inc,fin,d;
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]);
long xmax=0;
i=1;j=1;d=1;
valid=0;
do{
   k=0;
   j=1;
   do{
      valid=0;
      do{
	 if(a[i]==c[j]){valid=1;fin=i;
			if(j==1){k=i;inc=i;}
		       }
	 i++;
	 }while((i<=n)&&(valid==0));
      if(valid==0)d=0;
      j++;
      }while((j<=c[0])&&(d!=0));
   i=k+1;
   x=fin-inc;x++;
   if(x>xmax)x=xmax;
  }while(k!=0);
if(d==5)fprintf(stdout,"%ld",d);
else fprintf(stdout,"%ld",xmax);



fclose(stdin);
fclose(stdout);
return 0;
}