Cod sursa(job #235844)

Utilizator DahakaNameless Hero Dahaka Data 26 decembrie 2008 00:01:38
Problema Secv Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
#define NMAX 5002
int A[NMAX],S[NMAX],E[NMAX];
inline int min(const int a,const int b)
{
	return a<b?a:b;
}
int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	int N,ANS=NMAX;
	scanf("%d",&N);
	int i,j;
	for(i=1; i<=N; ++i){
		scanf("%d",&A[i]);
		S[i]=A[i];
	}
	sort(S+1,S+N+1);
	int inc,sf=0;
	S[0]=-1;
	for(i=1; i<=N; ++i)
	{
		if( S[i]!=S[i-1] )
			E[++sf]=S[i];
	}

	for(i=1; i<=N; ++i)
	{
		if( E[1]==A[i] )
		{
			inc=2;
			for(j=i+1; j<=N; ++j)
			{
				if( E[inc]==A[j] )
					++inc;
				if( inc==sf+1 ){
					ANS=min(ANS,j-i+1);
					break;
					}
			}
		}
	}
	if( ANS!=NMAX )
		printf("%d\n",ANS);
	else
		printf("-1\n");
	return 0;
}