Cod sursa(job #402549)

Utilizator TabaraTabara Mihai Tabara Data 23 februarie 2010 22:35:19
Problema Subsir crescator maximal Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
/*
@ Mihai Tabara, 2010
CMLSCM ( subsir crescator maximal )
O(N^2) - time
	   - memory
*/

#include <fstream>
using namespace std;

const char* in = "scmax.in";
const char* out = "scmax.out";
const int NMAX = 100005;

int best[NMAX], tata[NMAX];
int A[NMAX], N;

template<typename T>
inline T maxim ( T a, T b ) { return ((a) > (b) ? (a) : (b)); }

int main ( void )
{
	freopen ( in, "r", stdin );
	freopen ( out, "w", stdout );

	scanf ( "%d", &N );
	int i, j, max;

	for ( i = 1; i <= N; scanf( "%d", A+i++ ) );

	best[ max = 0] = 0;
	for ( i = 1; i <= N; ++i )
	{
		best[i] = 1;
		for ( j = 1; j < i; ++j )
			if ( A[j] < A[i] && best[i] < best[j] + 1 )
			{
				best[i] = best[j] + 1;
				max = maxim ( max, best[i] );
			}
	}

	printf ( "%d\n", max );
	return 0;
}