Cod sursa(job #368933)

Utilizator bixcabc abc bixc Data 26 noiembrie 2009 17:14:32
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#define Nmax 100003

int v[Nmax], L[Nmax], T[Nmax];
int n, i, j, max, pmax, k;

FILE *f = fopen("scmax.in", "r");
FILE *g = fopen("scmax.out", "w");

void print(int i) {
	if (i) {
		k++;
		print(T[i]);
		fprintf(g, "%d ", v[i]);
	}
	else
		fprintf(g, "%d\n", k);
}

int main() {
	
	fscanf(f, "%d", &n);
	for (i = 1; i <= n; i++)
		fscanf(f, "%d", &v[i]);
	
	for (i = 1; i <= n; i++)
		for (j = 1; j < i; j++)
			if (v[j] < v[i] && L[j] >= L[i]) {
				L[i] = L[j] + 1, T[i] = j;
				if (L[i] > max)
					max = L[i], pmax = i;
			}
	
	k = 0;
	print(pmax);
	
	fclose(f);
	fclose(g);
	
	return 0;
}