Cod sursa(job #47358)

Utilizator mihai0110Bivol Mihai mihai0110 Data 3 aprilie 2007 16:56:39
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream.h>
ifstream f("secv.in");
ofstream g("secv.out");
long i,j,n,m,k,p,gas,st,sf,min=2147483647,p1,p2,a[5000],b[5000];
int poz(int li,int ls)
{
int t=0,i,j,aux;
i=li;
j=ls;
while(i<j)
{
if(b[i]>b[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
t=1-t;
}
if(t)
j--;
else
i++;
}
return i;
}
void quick(int li,int ls)
	{
	int k;
	if(li<ls)
	{
		k=poz(li,ls);
		quick(li,k-1);
		quick(k+1,ls);
	}
	}
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i];
gas=0;
for(j=1;j<=m;j++)
if(b[j]==a[i])
{
gas=1;
break;
}
if(gas==0)
{
m++;
b[m]=a[i];
}
}
quick(1,m);
for(i=1;i<=n;i++)
if(a[i]==b[1])
{
st=i;
p=2;
for(j=i+1;j<=n;j++)
if(a[j]==b[p])
{
p++;
sf=j;
}
if(p-1==m&&sf-st+1<min)
{
p1=st;
p2=sf;
min=sf-st+1;
}
}
if (min!=2147483647)
g<<min;
else
g<<"0";
g<<'\n';
f.close();
g.close();
return 0;
}