Cod sursa(job #528081)

Utilizator lily3Moldovan Liliana lily3 Data 1 februarie 2011 21:40:55
Problema Secv Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream>
#include<algorithm>
using namespace std;

long i,j,n,m,a[50001],b[50001],c[50001],poz,rez=1000000000;
int main()
{
	ifstream f("secv.in");
	ofstream g("secv.out");
	f>>n;
	for(i=0;i<n;i++)
		f>>a[i],b[i]=a[i];
	sort(b,b+n-1);
	c[0]=b[0];
	m=1;
	for(i=1;i<n;i++)
		if(b[i]!=b[i-1])
			c[m++]=b[i];
		for(i=n-1;i>=0;i--)
		{
			if(a[i]==c[m-1])
			{
				for(poz=i,j=m-2;j>=0;j--)
				{
					while(poz>=0&&a[poz]!=c[j])
						poz--;
					if(poz<0)
						break;
			    }
			if(j==-1&&rez>i-poz+1)
				rez=i-poz+1;
			}
		}
		if(rez==1000000000)
			g<<-1;
		else
			g<<rez;
	return 0;
}