Cod sursa(job #1752308)

Utilizator bogdanluncasubogdan bogdanluncasu Data 3 septembrie 2016 14:48:33
Problema Subsir crescator maximal Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <iostream>
using namespace std;
int n,a[100000],l[100000],poz[100000],m,prim;
int main() {
	freopen("scmax.in", "r", stdin);
	freopen("scmax.out", "w", stdout);
	cin>>n;
	for(int i=0;i<n;i++)cin>>a[i];
	int i, j;
	for (i=n; i>0; i--){ 
			l[i]=1;poz[i]=0;
		for (j=i+1; j<=n; j++)
		if (a[i] <= a[j] && l[i]<1+l[j])
		{
			l[i]=1+l[j]; poz[i]=j;
		}
		if(m<l[i])
		{
			m=l[i];
			prim=i;
		}
	}
	cout<<m<<endl;
	for (i=prim; i>0; i=poz[i])cout<<a[i]<<" ";
}