Cod sursa(job #528254)

Utilizator miadaradiciDaradici Mia miadaradici Data 2 februarie 2011 14:30:46
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
long long n, v[100004],b[100005],i,pozitie,maxx;
void citeste ()
{
	f>>n;
	for ( i=1; i<=n; i++ )
		f>>v[i];
}

void calculeaza()
{
	int i,j,p=0;
	b[n]=1;
	for ( i=n-1; i>=1; i-- )
	{
		p=0;
		for ( j=i+1; j<=n; j++ )
			if ( v[i]<v[j] )
				if ( b[j]>p )
					p=b[j];
		b[i]=p+1;
	}
}
void maxim()
{
	
	for ( i=1; i<=n; i++ )
		if ( b[i]>maxx )
		{
			maxx=b[i];
			pozitie=i;
		}
	g<<maxx<<'\n';
}

void rezolva ()
{
	int i=0;
	for ( i=pozitie; i<=n; i++ )
	{
		if ( b[i]==maxx )
		{
			g<<v[i]<<" ";
			maxx--;
		}
	}
	
}
			
int main ()
{
	citeste();
	calculeaza();
	maxim();
	rezolva();
	
}