Cod sursa(job #300757)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 7 aprilie 2009 17:38:30
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#include<string.h>
#include<algorithm>

using namespace std;

int n,a[5001],b[5001];
int pz[5001],nr;

int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		{scanf("%d",&a[i]);
		 b[i]=a[i];
		}
	sort(b+1,b+n+1);
	for(int i=1;i<=n;i++)
	{
		while(b[i]==b[i+1])
			i++;
		pz[++nr]=i;
	}
	int lungmin=5002;
	for(int i=1;i<=n;i++)
	{
		if(a[i]==b[pz[1]])
		{
			int pzz=i,ok=1;
			for(int j=2;j<=nr;j++)
			{
				while(a[pzz]!=b[pz[j]]&&pzz<=n)
					pzz++;
				if(pzz>n) ok=0;
			}
			if(ok!=0)
				if(lungmin>(pzz-i+1)) lungmin=pzz-i+1;
		}
	}
	if(lungmin==5002) printf("-1\n");
	else 
	printf("%d\n",lungmin);
	return 0;
}