Cod sursa(job #809672)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 8 noiembrie 2012 20:11:49
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<stdio.h>
#include<algorithm>
#include<string.h>
#define NMAX 5007

using namespace std;

int b[NMAX],v[NMAX],ap[NMAX];

int main()
{
	
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	
	int n,j,nr,i,k,min2;
	
	scanf("%d",&n);
	
	for(i=1;i<=n;i++)
		scanf("%d",&b[i]);
	
	if(n==1) 
	{
		printf("1\n");
		return 0;
	}
	
	memcpy(v,b,sizeof(b));
	
	sort(v+1,v+n+1);
	
	ap[1]=v[1];
	k=1;
	
	for(i=2;i<=n;i++)
		if(v[i]!=v[i-1])
			ap[++k]=v[i];
	
	min2=n+1;
	
	for(i=1;i<=n;i++)
		if(b[i]==ap[1])//verific
		{
			
			nr=2;
			for(j=i+1;j<=n;j++)
			{
				
				if(b[j]==ap[nr])//daca numar
					nr++;
				
				if(nr==k+1)//daca e egal
				{
					
					if(min2>j-i+1)//noua solutie
						min2=j-i+1;
					
					break;
					
				}
				
			}
			
		}
	
	if(min2==n+1)
		printf("-1\n");
	else
		printf("%d\n",min2);
	
	return 0;
}