Cod sursa(job #381186)

Utilizator gabipurcaruGabi Purcaru gabipurcaru Data 9 ianuarie 2010 15:59:31
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <set>
using namespace std;

ifstream in("secv.in");
ofstream out("secv.out");

long n,x[5001],i,l[5001],p,minim,j,prev,k;
set<long> a;
set<long>::reverse_iterator it,it2;

int main()
{
	in>>n;
	for(i=1; i<=n; i++)
	{
		in>>x[i];
		a.insert(x[i]);
	}
	it = a.rbegin();
	minim = 1000000000;
	for(i=n; i>=1; i--)
		if(x[i] == *it)
		{
			it2 = it;
			it2++;
			for(k=i; it2!=a.rend(); it2++)
				while(k>=0 && x[k]!=*it2)
					k--;
				if(k<0)
					break;
			if(it2==a.rend())
			{
				if(minim>i-k+1)
					minim = i-k+1;
			}
		}
	if(minim==1000000000)
		out<<-1;
	else
		out<<minim;
	return 0;
}