Cod sursa(job #287079)

Utilizator lucianvnDragomir Lucian lucianvn Data 24 martie 2009 15:49:40
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream.h>
ifstream intrare ("secv.in");
ofstream iesire ("secv.out");
long unsigned v[5001];
unsigned sol[5001][3],n;
int main()
{
	int i,nr,j,max=0,min;
	intrare>>n;
	for(i=1;i<=n;i++)
	{
		intrare>>v[i];
	}
	sol[n][1]=1;
	sol[n][2]=0;
	sol[n][0]=n;
	for(i=n-1;i>=1;i--)
	{
		sol[i][1]=1;
		sol[i][2]=0;
		max=0;
		for(j=i+1;j<=n;j++)
		{

			if(v[i]<v[j])
			{
				if(max<sol[j][1])
				{
					sol[i][1]=sol[j][1]+1;
					max=sol[j][1];
					sol[i][2]=j;
				}
			}
		}
		if(sol[i][1]==1) sol[i][0]=i;
		else sol[i][0]=sol[sol[i][2]][0];
	}
	int start;
	min=0;
	for(i=1;i<=n;i++)
	{
		if(min<sol[i][1])
		{
			min=sol[i][1];
			start=i;
		}
		else if(min==sol[i][1])
		{
			 if(sol[i][0]-i<sol[start][0]-start) start=i;
		}
	}
	nr=sol[start][0]-start+1;
	iesire<<nr;
	return 0;
}