Cod sursa(job #671905)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 1 februarie 2012 07:29:57
Problema Subsir crescator maximal Scor 45
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
using namespace std;
int main()
{
	ifstream cin("scmax.in");ofstream cout("scmax.out");
	int lis[100001],i,n,m,k,o,x[100001],v[100001],j;
	cin>>n;
	for(i=1;i<=n;i++)
		cin>>x[i];
	lis[n]=1;
	for(i=n-1;i>=1;i--)
	{
		m=0;
		for(j=i+1;j<=n;j++)
			if(m<lis[j]&&x[i]<x[j])
			{
				m=lis[j];
			}
		lis[i]=m+1;
	}
	m=lis[1];
	for(i=2;i<=n;i++)
		if(m<lis[i])
			m=lis[i];
	cout<<m<<"\n";
	for(i=1;i<n;i++)
	{
		k=1;o=x[i];
		for(j=i+1;j<=n;j++)
			if(x[j]>o)
			{
				v[0]=i;v[k]=j;k++;o=x[j];
			}
		if(m==k)
		{
			for(i=0;i<k;i++)
				cout<<x[v[i]]<<" ";
			return 0;
		}
	}
}