Cod sursa(job #628585)

Utilizator alexandrab0507Alexandra Beldica alexandrab0507 Data 1 noiembrie 2011 17:56:36
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
// gilrs8.cpp : Defines the entry point for the console application.
//


#include <iostream>
#include <fstream>

using namespace std;

int n,v[100000],d[100000],vv[100000], ind=0;
ifstream f;
ofstream g;

int findmax(int k) {
	int maxd=0;
	for(int i=0;i<k;i++) 
		if ((maxd<d[i])&&(v[i]<v[k]))
			maxd=d[i];
	return maxd;
}

int sir(int k) {
	int i;
	int maxd=0,maxdi=0;
	if (k!=0) {
		for (i=k-1;i>=0;i--)
			if ((d[i]==d[k]-1)&&(v[i]<v[k])) {
				maxd=d[i];
				maxdi=i;
			}
		vv[ind]=v[maxdi];
		if (maxd==0)
			return 0;
		else { ind++;
			int aux=v[sir(maxdi)];
		}
	}
	else return 0;
}

int main() {
	f.open("scmax.in");
	g.open("scmax.out");
	int i,j,max=0,maxi=0;
	f>>n;
	for (i=0;i<n;i++)
		f>>v[i];
	d[0]=1;
	for (i=1;i<n;i++) {
		d[i]=findmax(i)+1;
		if (max<d[i]) {
			max=d[i];
			maxi=i;
		}
	}
	int aux=sir(maxi);
	g<<ind<<endl;
	for (i=ind-1;i>=0;i--)
		g<<vv[i]<<" ";
	f.close();
	g.close();
	return 0;
}