Cod sursa(job #418098)

Utilizator mihai995mihai995 mihai995 Data 15 martie 2010 14:26:36
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
using namespace std;
int l[1<<20],v[1<<20];
ifstream in("scmax.in");
ofstream out("scmax.out");

void scr(int i,int max)
{
	if (i==0) return;
	if (l[i]==max)
	{
		scr(i-1,max-1);
		out<<v[i]<<" ";
	}
	else
		scr(i-1,max);
}

int main()
{
	long long maxim=0,i,j,n,x;
	in>>n;
	for (i=1;i<=n;i++)
	{
		in>>v[i];
		l[i]=1;
		for (j=i-1;j>=1;j--)
			if (v[j]<v[i])
			{
				l[i]=l[j]+1;
				if (maxim<l[i])
				{
					maxim=l[i];
					x=i;
				}
				break;
			}
	}
	out<<maxim<<"\n";
	scr(x,maxim);
	return 0;
}