Cod sursa(job #447442)

Utilizator voikybodea voichita voiky Data 28 aprilie 2010 18:47:42
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream>
using namespace std;

int n,a[100001],cresc[100001]={0,1},ante[100001];
ofstream g("scmax.out");

void afis(int j)
{
	if(ante[j]){afis(ante[j]);g<<a[j]<<' ';}
	else g<<a[j]<<' ';
}

int main()
{
	ifstream f("scmax.in");
	int i,j,max;
	f>>n;for(i=1;i<=n;i++)f>>a[i];
	for(i=2;i<=n;i++)
	{
		for(j=1;j<i && a[j]>=a[i];j++);
		if(j==i)cresc[i]=1;
		else
		{
			max=j;
			for(;j<i;j++)
				if(a[j]<a[i] && cresc[j]>cresc[max])max=j;
			cresc[i]=1+cresc[max];
			ante[i]=max;
		}	
	}
	j=1;for(i=2;i<=n;i++)if(cresc[i]>cresc[j])j=i;
	g<<cresc[j]<<'\n';
	afis(j);
	f.close();g.close();
	return 0;
}