Cod sursa(job #287028)

Utilizator lucianvnDragomir Lucian lucianvn Data 24 martie 2009 14:43:32
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream.h>
ifstream intrare ("secv.in");
ofstream iesire ("secv.out");
int v[5001],n,sol[5001][3];
int main()
{
	int i,nr,j,sw=0,max=0,min;
	intrare>>n;
	for(i=1;i<=n;i++)
	{
		intrare>>v[i];
	}
	if (n>=1)
	{
	sol[n][1]=1;
	sol[n][2]=0;
        sw=1;
	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;
				}
			}
		}
	}
	}
	int poz2;
	max=0;
	nr=0;
	if(sw==1)
	{
	for(i=1;i<=n;i++)
	{
		if(max<=sol[i][1])
		{
			max=sol[i][1];
			min=i;
		}
	}
	int t=min;
	while(t!=0)
	{       i=t;
		t=sol[t][2] ;
		poz2=i;
	}
		if(t==0) {poz2=i;   i=n+2;}
	nr=poz2-min+1;
	iesire<<nr;
	}
	if(sw==0) iesire<<-1;
	return 0;
}