Cod sursa(job #528075)

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

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