Cod sursa(job #127437)

Utilizator za_wolfpalianos cristian za_wolf Data 23 ianuarie 2008 21:44:11
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#define NMAX 5001
long max,poz,x[NMAX],y[NMAX],i,j,n,m,k,l,a,s;
int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	scanf("%ld",&n);
	for (i=1;i<=n;i++)
	{
		scanf("%ld",&x[i]);
		y[i]=x[i];
	}
	a=1;
	while (a)
	{
		a=0;
		for (i=1;i<n;i++)
		if (y[i]>y[i+1]) {a=y[i]; y[i]=y[i+1]; y[i+1]=a; a=1;}
	}
	y[n+1]=-1;
	for (i=1;i<=n;i++)
	if (y[i]!=y[i+1]) y[++y[0]]=y[i];
	max=6000;
	for (i=1;i<=n;i++)
		if (x[i]==y[1])
		{
			m=y[0]-1;
			j=i;
			poz=2;
			while (j<=n&&m)
			{
				j++;
				if (x[j]==y[poz]) {poz++; m--;}
			}
			if (m==0&&j-i+1<max) max=j-i+1;

		}
		if (max==6000)
		 printf("-1\n");
		 else

	printf("%ld\n",max);
	return 0;
}