Cod sursa(job #802247)

Utilizator dariusdariusMarian Darius dariusdarius Data 26 octombrie 2012 08:45:02
Problema Secv Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int a[5005],v[5005],f[5005];
int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	int n,j,nr,i,k,min;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&a[i]);
	memcpy(v,a,sizeof(a));
	sort(v+1,v+n+1);
	f[1]=v[1];k=1;
	for(i=2;i<=n;i++)
		if(v[i]!=v[i-1])
			f[++k]=v[i];
	min=n+1;
	for(i=1;i<=n;i++)
		if(a[i]==f[1])
		{
			nr=2;
			for(j=i+1;j<=n;j++)
			{
				if(a[j]==f[nr])
					nr++;
				if(nr==k+1)
				{
					if(min>j-i+1)
						min=j-i+1;
					break;
				}
			}
		}
	if(min==n+1)
		printf("-1\n");
	else
		printf("%d\n",min);
	return 0;
}