Cod sursa(job #2062149)

Utilizator BeniLehelBeni Lehel BeniLehel Data 10 noiembrie 2017 00:31:44
Problema Subsir crescator maximal Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
#include<stdlib.h>
int main() {

	int n;
	long t[100001] = { 0 }, l[100001] = { 0 };
	freopen("scmax.in", "r", stdin);
	freopen("scmax.out", "w", stdout);
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
		scanf("%d", &t[i]);
	int m = -1;
	for (int i = 1; i < n; i++) {
		for(int j=0;j<i;j++)
			if (t[j] < t[i] && l[i]<l[j]+1) {
				l[i] = l[j] + 1;
				if (m < l[i])m = l[i];
			}
	}
	printf("%d\n", m+1);
	int max = -1;
	for (int i = 0; i <n; i++)
		if (l[i] > max) {
			while (l[i] == l[i + 1])i++;
			printf("%d ", t[i]);
			max = l[i];
		}
	return 0;
}