Cod sursa(job #235115)

Utilizator DahakaNameless Hero Dahaka Data 22 decembrie 2008 21:47:31
Problema Secv Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#include<algorithm>
#define NMAX 5002
using namespace std;

int A[NMAX],S[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;
	scanf("%d",&N);

	int i,j,k;
	for(i=1; i<=N; ++i){
		scanf("%d",&A[i]);
		S[i]=A[i];
	}
	
	sort(S+1,S+N+1);
	
	int last=0,sf=0;
	for(i=1; i<=N; ++i)
		if( last!=S[i] )
		{	
			last=S[i];
			S[++sf]=S[i];
		}
	
	int first,second,ANS=N;
	for(i=1; i<=N && sf<N-i; ++i)
		if( A[i]==S[1] )
		{
			first=i;
			for(k=i,j=1; ; )
			{
				if( A[k]==S[j] )
					++j;
				++k;
				if( j==sf || k==N )
					break;
			}
			second=k;
			if( j==sf )
				ANS=min(ANS,second-first+1);
		}
	printf("%d\n",ANS);
	return 0;
}