Cod sursa(job #93684)

Utilizator me_andyAvramescu Andrei me_andy Data 19 octombrie 2007 20:34:39
Problema Secv Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream.h>

 ifstream f("secv.in");
 ofstream g("secv.out");
 long n,l,i,j,a[5010],v[5010],min,ok,k,c,aux;
int main()
{
  f>>n;
  l=1;
  for(i=1;i<=n;i++)
  {
   f>>v[i];
	c=0;
   for(j=1;j<=l;j++)
    if(v[i]==a[j])
    {
     c=1;
     break;
    }
   if(c==0)
	{
	 a[l]=v[i];
    l++;
   }
 }
  min=2*n;
  l--;
 for(i=1;i<l;i++)
  for(j=i+1;j<=l;j++)
	if(a[i]>a[j])
	{
	 aux=a[i];
	 a[i]=a[j];
	 a[j]=aux;
	}
 for(i=1;i<=n-l+1;i++)
 {
  if(v[i]==a[1])
  {
	ok=0;
	k=2;
    j=i+1;
   while(ok<l-1 && j<=n)
	{
	 if(v[j]==a[k])
    {
     ok++;
     j++;
     k++;
    }
    else
     j++;
   }
   j--;
    if(ok==l-1 && j-i+2<min)
	  min=j-i+2;
    if(i==1)
     min--;
    if(min==n+1)
     min=n;
  }

 }
  if(min==2*n)
	g<<-1;
	else
	 g<<min;

  f.close();
  g.close();
 return 0;
}