Cod sursa(job #299617)

Utilizator nitica_isabelaNitica Isabela nitica_isabela Data 6 aprilie 2009 21:36:06
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>


using namespace std;

int n, solmin, nr;
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=32000; 
 for(i=1;i<=n;i++)
	{
		if(a[i]==s[1])
		{
			k=2; 
			for(p=i;(p<=n)&&(k!=nr+1);p++)
				if(a[p]==s[k]) k++;
			if(k==nr+1) 
				{sol=p-i; 
				 if(sol<solmin) solmin=sol;	
				} 
		}	
	}
}

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