Cod sursa(job #318714)

Utilizator ooctavTuchila Octavian ooctav Data 29 mai 2009 01:47:11
Problema Secv Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
// secv.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <stdlib.h>

int e[7001];
char c[80000];
int f[7001];
int cont=0,n,nr,secvmin=15001,b;

int compar(const void *a,const void *b)
{
	return(*(int*)a-*(int*)b);
}

void obtin()
{
	int i,j;
	scanf("%d\n",&n);
	for(i=1;i<=n;i++)
	{
		b=1;
		scanf("%d",&e[i]);
		for(j=1;j<i;j++)
			if(f[j]==e[i])
			{
				b=0;
				break;
			}
			if(b)
				f[++cont]=e[i];
	}
	qsort(f,cont+1,sizeof(int),compar);
}
int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	int i,j;
	obtin();
	for(i=1;i<=n;i++)
		if(e[i]==f[1])
		{
			b=1;
			j=i+1;
			nr=1;
			while(nr<cont)
			{
				if(j>n)
				{
					b=0;
					break;
				}
				if(e[j]==f[nr+1])
					nr++;
				j++;
			}
			if(b)
				if(secvmin>j-i)
					secvmin=j-i;
		}
	if(secvmin==15001)
		printf("-1");
	else
		printf("%d\n",secvmin);

	return 0;
}