Cod sursa(job #334330)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 26 iulie 2009 11:54:09
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
#define N 5056
int n,v[N],salv[N],sir[N],r,length;
void read()
{
	scanf("%d",&n);
	int i;
	for (i=1; i<=n; i++)
	{
		scanf("%d",&v[i]);
		salv[i]=v[i];
	}
}
void fac_sir()
{
	sort(salv+1,salv+n+1);
	int i;
	salv[0]=-1;
	for (i=1; i<=n; i++)
		if (salv[i]!=salv[i-1])
			sir[++r]=salv[i];
}
void solve()
{
	length=N;
	int i,j,act;
	for (i=1; i<=n-r+1; i++)
	{
		act=1;
		for (j=i; j<=n; j++)
		{
			if (v[j]==sir[act])
				act++;
			if (act==r+1)
			{
				if (j-i+1<length)
					length=j-i+1;
				break;
			}
		}
	}
	if (length!=N)
		printf("%d\n",length);
	else
		printf("-1\n");
}
int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	read();
	fac_sir();
	solve();
	return 0;
}