Cod sursa(job #484526)

Utilizator avram_florinavram florin constantin avram_florin Data 14 septembrie 2010 18:27:04
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<cstdio>
#include<algorithm>

using namespace std;

const int MaxN = 5001;
int n,m,v[MaxN],cop[MaxN],sir[MaxN],rez = 6000;

bool cmp(int a , int b)
{
	return a < b;
}

int main ()
{
	int i,j,k;
	freopen("secv.in", "r" , stdin);
	scanf("%d" , &n);
	for( i = 1 ; i <= n ; i++)
		scanf("%d", &v[i]), cop[i] =v[i];
	sort(cop+1,cop+n+1,cmp);
	sir[1] = cop[1]; m = 1;
	for(i = 2 ; i <= n ; i++)
		if( cop[i] != cop[i-1] )
			sir[++m] = cop[i];
	for(i = n ; i ; i--)
		{
			if( v[i] == sir[m] )
				{
					for( k = i , j = m-1 ; j ; j-- )
						{
							while( k && v[k] != sir[j] )
								k--;
							if( !k )
								break;
						}
					if( !j && rez > i -k +1 )
						rez = i - k + 1;
				}
		}
	freopen("secv.out" , "w" , stdout);
	printf("%d\n" , rez == 6000 ? -1 : rez);
	return 0;
}