Cod sursa(job #299320)

Utilizator nitica_isabelaNitica Isabela nitica_isabela Data 6 aprilie 2009 18:17:37
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>
#include<iostream>

using namespace std;

int n,solmin,nr;
unsigned 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++)
	{
		fin>>a[i];
		gasit=0;
		for(j=1;(j<=i)&&(gasit==0);j++)
			if(a[i]==s[j]) gasit++; 
		if(gasit==0) 
			{s[nr]=a[i];
		     nr++;
			}
	}
	nr--; 
	fin.close();
}

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

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