Cod sursa(job #179336)

Utilizator andumMorie Daniel Alexandru andum Data 15 aprilie 2008 20:09:45
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
# include <stdio.h>

FILE *f,*g;

long n,i,j,a[5000],v[5000],m,k,min;

int main()
{

 f=fopen("secv.in","r");
 g=fopen("secv.out","w");

 fscanf(f,"%ld", &n);
 for (i=1;i<=n;i++)
	{
	 fscanf(f,"%ld", &a[i]);
	 v[i]=a[i];
	}
 fclose(f);
 for (i=1;i<n;i++)
  for (j=i+1;j<=n;j++)
	if (v[i]>v[j])
		{
		 v[0]=v[i];
		 v[i]=v[j];
		 v[j]=v[0];
		}
 i=1;
 for (j=2;j<=n;j++)
	if (v[i]!=v[j])
		v[++i]=v[j];
 m=i;
 min=n+1;
 for (i=1;i<=n;i++)
 {
   if (a[i]==v[1])
   {
    j=i; k=1;
    while (j<=n && k<=m)
      if (a[j]==v[k])k++;
	 else j++;
    if (k>m)
	if (min>j-i+1) min=j-i+1;

   }

 }
 if (min==n+1) fprintf(g,"-1");
	  else fprintf(g,"%ld", min);

 fclose(g);

 return 0;
}