Cod sursa(job #739543)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 23 aprilie 2012 13:32:38
Problema Subsir 2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

#define MAXN 10000

int A[MAXN], D[MAXN];
int sol, last, i, j, minim;
int N;

int main()
{
	freopen("subsir2.in","r",stdin);
	freopen("subsir2.out","w",stdout);
	
	scanf("%d",&N);
	for (i=1; i<=N; ++i)
		scanf("%d",&A[i]);
	
	for (i=N; i>=1; --i){
		D[i] = 1;
		for (j=i+1; j<=N; ++j)
			if (A[i] <= A[j])
				D[i] = max(D[i], D[j]+1);
	}
	
	minim = 2000000000;
	sol = 1;
	for (i=1; i<=N; ++i)
		if (minim > A[i]){
			minim = A[i];
			if (D[sol] > D[i])
				sol = i;
		}
		
	printf("%d\n", D[sol]);
	return 0;
}