Cod sursa(job #701394)

Utilizator runnerbloodVoda Alexandru-Ioan runnerblood Data 1 martie 2012 15:37:05
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
using namespace std;

ofstream out ("scmax.out");
ifstream in ("scmax.in");

int main () {
	int v[200], l[200], n, max=0, t;
	in >> n;
	for (int i=1; i<=n; i++) {
		in >> v[i];}
	l[n]=1;
	for (int k=n-1; k>=1; k--) {
		max=0;
		for (int i=k+1; i<=n; i++) {
			if ((v[i]>v[k]) && (l[i]>max)) {
				max=l[i];
			}
		}
		l[k]=1+max;
	}
	max=l[1];
	t=1;
	for (int k=1; k<=n; k++) {
		if (l[k]>max) {
			max=l[k]; t=k;
		}
	}
	
	out << max << "\n" << v[t] << " ";
	
	for (int i=t+1; i<=n; i++) {
		if (v[i]>=v[t]&&l[i]==max-1) {
			out << v[i] << " ";
			max--;
		}
	}
}