Cod sursa(job #33760)

Utilizator bacerandreiBacer Andrei bacerandrei Data 19 martie 2007 19:48:13
Problema Secv Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream.h>
long long n,a[5000],i,b[5000],min,c[5000],l,k=1,j,gasit=0,t;
void quik(int p,int q)
{
  int aux,i,j,t;
   if(p<q)
    {
     i=p;
     j=q;
     t=1;
   do
    {
     if(a[i]>a[j])
      {
       aux=a[i];
       a[i]=a[j];
       a[j]=aux;
       t=!t;
      }
    if(t)
     j--;
    else
     i++;
   }while(i!=j);
  quik(p,i-1);
  quik(i+1,q);
  }
}
int main()
{
  ifstream f("secv.in");
  ofstream g("secv.out");
   f>>n;
    for(i=1;i<=n;i++)
     f>>b[i];
   for(i=1;i<=n;i++)
    {
     gasit=0;
     for(j=0;j<k;j++)
      if(a[j]==b[i])
       gasit=1;
     if(gasit==0)
      {
       a[k]=b[i];
       k++;
      }
    }
   quik(1,k-1);
  for(i=1;i<n-k+2;i++)
   {
    gasit=0;
    j=i+1;
    if(b[i]==a[1])
     {
      t=2;
      while(j<=n&&!gasit)
       {
	if(b[j]==a[t])
	 t++;
	if(t==k)
	 {
	  c[l]=j-i+1;
	  l++;
	 }
	j++;
       }
     }
    }
    if(c[0]==0)
     g<<"-1";
    else
     {
   min=c[0];
    for(i=1;i<l;i++)
     if(a[i]<min)
      min=a[i];
     g<<min;
    }
 return 0;
}