Cod sursa(job #548210)

Utilizator HoriaClementHoriaC HoriaClement Data 7 martie 2011 10:26:26
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

pair <int,int> x[5005];

int n,val,v[5005],r=6000,poz[5005];

inline int min(int x,int y)
{
	return x < y ? x : y;
}
ifstream in("secv.in");
ofstream out("secv.out");


int main()
{
	in>>n;
	for(int i=1;i<=n;++i)
	{
		in>>x[i].first;
		x[i].second=i;
	}
	sort(&x[1],&x[n+1]);
	val=1;
	v[x[1].second]=1;
	for(int i=2;i<=n;++i)
	{
		if(x[i].first!=x[i-1].first)
			++val;
		v[x[i].second]=val;
	}
	for(int i=1;i<=n;++i)
	{
		if(v[i]==1)
			poz[1]=i;
		else
		{
			poz[v[i]]=poz[v[i]-1];
			if(v[i]==val)
				r=min(r,i-poz[v[i]]+1);
		}
	}
	if(r==6000)
		r=-1;
	out<<r;
	return 0;
}