Cod sursa(job #2211633)

Utilizator AlexPascu007Pascu Ionut Alexandru AlexPascu007 Data 11 iunie 2018 11:01:39
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <limits.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,maxim,v[100010],l[100010],t[100010],poz,k,s[100010],i,j,u;
int main() {
	fin>>n;
	for (i=1;i<=n;i++)
		fin>>v[i];
	n++; v[n]=INT_MAX;
	l[1]=1;
	for (i=2;i<=n;i++) {
		maxim=0;
		for (j=1;j<i;j++) {
			if (v[j]<v[i]&&l[j]>maxim) {
				maxim=l[j];
				poz=j;
			}
		}
		if (maxim!=0) {
			l[i]=1+maxim;
			t[i]=poz;
		}
		else {
			l[i]=1;
			t[i]=0;
		}
	}
	u=n;
	while (u!=0) {
		s[++k]=v[u];
		u=t[u];
	}
	fout<<k-1<<"\n";
	for (i=k;i>=2;i--)
		fout<<s[i]<<" ";
	return 0;
}