Cod sursa(job #803309)

Utilizator ArmandNMArmand Nicolicioiu ArmandNM Data 27 octombrie 2012 12:58:39
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,v[100],lun[100],pre[100],predecesor,maxim1,lm,poz,elemente,i;

void afisare(int n, int elemente)
{
	if (elemente>=0)
	{
		if (pre[n]!=0) afisare(pre[n],elemente-1);
		g<<v[n]<<" ";
	}
}

void maxim(int n)
{
	int i;
	maxim1=0;	
	for (i=1;i<=n-1;i++)
	{
		if (v[i]<v[n])
			if (lun[i]>=maxim1)
			{
				maxim1=lun[i];
				predecesor=i;
			}
	}
}

int main()
{
	f>>n;
	f>>v[1];
	lun[1]=1;
	pre[1]=0;
	lm=1;
	for (i=2;i<=n;i++)
	{
		f>>v[i];
		maxim(i);
		lun[i]=1+maxim1;
		pre[i]=predecesor;
		if(lun[i]>=lm)
		{
			lm=lun[i];
			poz=i;
		}			
	}
	g<<lm<<" "<<poz<<endl;
	afisare(poz,lm);
}