Cod sursa(job #299376)

Utilizator andrei_vs2009Cozma Andrei andrei_vs2009 Data 6 aprilie 2009 18:54:18
Problema Secv Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>

using namespace std;

int N,a[5001],b[5001],viz[5001],l,poz[5001],p;

void ReadData()
{
	int i;
	ifstream fin ("secv.in");
	fin>>N;
	for (i=1;i<=N;i++)
		{fin>>a[i];
		 viz[a[i]]++;
		 if (viz[a[i]]==1) b[++l]=a[i];
		}
	fin.close();
}
void Sortare()
{
	int i,j,aux;
	for (i=1;i<=l-1;i++)
		for (j=i+1;j<=l;j++)
			if (b[i]>b[j])
			{
				aux=b[i];
				b[i]=b[j];
				b[j]=aux;
			}
}
void Solve()
{
	int i,j,nr,q,min;
	for (i=1;i<=N;i++)
		if (a[i]==b[1])
			poz[++p]=i;
	min=32000;
	for (i=1;i<=p;i++)
	{   q=1;
		for (j=poz[i];(j<=N)&&(q!=l+1);j++)
			if (a[j]==b[q]) q++;
		if (q==l+1) {
						nr=j-poz[i];
						if (min>nr) min=nr;
					}
	}
	ofstream fout("secv.out");
	fout<<min<<"\n";
	fout.close();
}


int main ()
{
	ReadData();
	Sortare();
	Solve();
	return 0;
}