Cod sursa(job #299536)

Utilizator nitica_isabelaNitica Isabela nitica_isabela Data 6 aprilie 2009 20:46:36
Problema Secv Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<fstream>
#include<iostream>

using namespace std;

int n,solmin,nr;
long long a[5001],s[5001];


void ReadData()
{
	int i,j,gasit;
	ifstream fin("secv.in");
	fin>>n;
	nr=1;
	for(i=1;i<=n;i++) s[i]=-1;
	for(i=1;i<=n;i++)
	{
		fin>>a[i];
		gasit=0;
		for(j=1;(j<=nr)&&(gasit==0);j++)
			if(a[i]==s[j]) gasit++; 
		if(gasit==0) 
			{s[nr]=a[i];
		     nr++;
			}
	}
	nr--; 
	fin.close();
}

void Solve()
{int i,p,sol,k;
 solmin=6000; 
 for(i=1;i<=n;i++)
	{
		k=1;
		if(a[i]==s[k])
		{
			k++; 
			for(p=i+1;(p<=n)&&(k<=nr);p++)
				if(a[p]==s[k]) k++;
			if(k>=nr) 
				{sol=p-i; 
				 if(sol<solmin) solmin=sol;	
				} 
		}	
	}
}

int main()
{
	ReadData();
	sort(s+1,s+nr); 
	ofstream fout("secv.out");
	if(n==1) fout<<"1";
	else
	{Solve();
	 if(solmin==60000) fout<<"-1";
	 else fout<<solmin;
	} 
	fout.close();
	return 0;
}