Cod sursa(job #368932)

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

int v[Nmax], S[Nmax], T[Nmax];
int n, i, j, 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] && S[j] >= S[i]) {
				S[i] = S[j] + 1, T[i] = j;
				pmax = i;
			}
	
	k = 0;
	print(pmax);
	
	fclose(f);
	fclose(g);
	
	return 0;
}