Cod sursa(job #238132)

Utilizator Ionescu_MariaIonescu Maria-Dorina Ionescu_Maria Data 31 decembrie 2008 17:40:40
Problema Secv Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<fstream.h>
long a[5002],o[5002],c[5002],poz[5002],aux;
int sw,n,k,lmin;
void pozitie(int i,int inc)
{int j;
if(i==k+1&&poz[k]-poz[1]+1<lmin)
	lmin=poz[k]-poz[1]+1;
else
	for(j=inc;j<=n;j++)
		if(a[j]==c[i])
		{
			poz[i]=j;
			pozitie(i+1,j+1);
		}
}
int main()
{
	int i;
	ifstream fin("secv.in");
	fin>>n;
	for(i=1;i<=n;i++)
	{
		fin>>a[i];
		o[i]=a[i];
	}
	fin.close();
	do
	{
		sw=1;
		for(i=1;i<n;i++)
			if(o[i]>o[i+1])
			{
				aux=o[i];
				o[i]=o[i+1];
				o[i+1]=aux;
				sw=0;
			}
	}while(sw==0);
	k=1;
	c[1]=o[1];
	i=2;
	while(i<=n)
	{
		while(o[i]==o[i-1]&&i<=n)
			i++;
		k++;
		c[k]=o[i];
		i++;
	}
	lmin=5000;
	pozitie(1,1);
	ofstream fout("secv.out");
	if(n==0)
		fout<<0<<'\n';
	else
		fout<<lmin<<'\n';
	fout.close();
	return 0;
}