Cod sursa(job #111072)

Utilizator bacerandreiBacer Andrei bacerandrei Data 28 noiembrie 2007 16:32:17
Problema Secv Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
long n,m,v[5000],t[5000],c[5000],rez=1000000000;
int main()
{
  long i,j,k,x;
   freopen("secv.in","r",stdin);
   scanf("%ld",&n);
    for(i=0;i<n;i++)
     {
      scanf("%ld",v+i);
      t[i]=v[i];
     }
    for(i=0;i<n;i++)
     for(j=i+1;j<n;j++)
      if(t[i]>t[j])
       x=t[i],t[i]=t[j],t[j]=x;
     c[0]=t[0];m=1;
      for(i=1;i<n;i++)
       if(t[i]!=t[i-1])
	c[m++]=t[i];
      for(i=n-1;i>=0;i--)
       {
	if(v[i]==c[m-1])
	 {
	  for(k=i,j=m-2;j>=0;j--)
	   {
	    while(k>=0&&v[k]!=c[j])
	     k--;
	    if(k<0)
	     break;
	   }
	 if(j==-1&&rez>i-k+1)
	  rez=i-k+1;
	}
      }
     freopen("secv.out","w",stdout);
    printf("%ld\n",rez==1000000000?-1:rez);
   return 0;
}