Cod sursa(job #327975)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 30 iunie 2009 17:47:41
Problema Secv Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

#define Nmax 5101
#define Inf 0x3f3f3f3f

int v[Nmax],a[Nmax],x[Nmax],s[Nmax],n,nr,sol,i,j;

int main()
{
	freopen("secv.in","r",stdin);
	freopen("secv.out","w",stdout);
	
	scanf("%d", &n);
	for (i=0;i<n;++i)
	{
		scanf("%d", &v[i]);
		s[i]=v[i];
	}
	
	sort(v,v+n);
	sol=Inf;
	a[v[0]]=1;
	nr=1;
	for (i=1;i<n;++i)
		 if (v[i]!=v[i-1])
		 {
			 nr++;
			 a[v[i]]=nr;
		 }
		 
	for (i=1;i<=nr;++i) x[i]=-Inf;
	
	for (i=1;i<=n;++i)
	{
		if (a[s[i]]==1) x[1]=i;
		else x[a[s[i]]]=x[a[s[i]]-1];
		sol=min(sol,i-x[nr]);
	}
	
	printf("%d", sol+1);
	
	return 0;
}