Cod sursa(job #664381)

Utilizator roxana_savulescuSavulescu Roxana roxana_savulescu Data 20 ianuarie 2012 00:18:37
Problema Subsir crescator maximal Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
using namespace std;
long  i,j,max1,maxim,lungime,a[100005],b[100005],n,c[100005];
int main(){
	ifstream f("scmax.in");
	ofstream g("scmax.out");
	f>>n;
	for (i=1;i<=n;i++){
		f>>a[i];
		b[i]=1;
	}
	lungime=1;
	for (i=2;i<=n;i++){
		max1=1;
		for (j=1;j<i;j++){
			if (a[i]>a[j] & b[j]>=max1) {
				b[i]=b[j]+1;
				max1=b[i];
			};
			if (max1==lungime+1) break;
		}
		if (max1>lungime) lungime=max1;
	}
	g<<lungime<<"\n";
	max1=20000001;j=0;
	for (i=n;i>=1;i--)
		if (b[i]==lungime & a[i]<max1) {
			lungime--;
			j++;
			c[j]=a[i];
			max1=a[i];
		}
	for (i=j;i>=1;i--)
		g<<c[i]<<" ";
	g<<"\n";
	return 0;
}