Cod sursa(job #780639)

Utilizator stef1995mmarcu stefan ovidiu stef1995m Data 20 august 2012 22:22:19
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
const int maxx=5005;
int i,j,n,x[maxx],a[maxx],val,nr,minim,poz;
int cmp(const void *p,const void *q)
{
	return *(int *)p-*(int *)q;
}
int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&x[i]);
		a[i]=x[i];
	}
	qsort(a+1,n,4,cmp);
	i=2;
	nr=1;
	while(i<=n)
	{
		if(a[i]!=a[i-1])
			a[++nr]=a[i];
		i++;
	}
	val=n-nr+1;
	minim=maxx;
	for(i=1;i<=val;i++)
	{
		poz=2;
		if(x[i]==a[1])
		{
			for(j=i+1;j<=n&&poz<=nr;j++)
				if(x[j]==a[poz])
					poz++;
			if(poz>nr)
				if(j-i<minim)
					minim=j-i;
		}
	}
	if(minim==maxx)
		printf("-1\n");
	else
		printf("%d\n",minim);
	return 0;
}