Cod sursa(job #2354948)

Utilizator Paulet.StefanPauletStefan Paulet.Stefan Data 25 februarie 2019 18:19:06
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#define LMAX 1000005

using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

int a[LMAX], lg[LMAX], succ[LMAX];
int inc, lgmax;
int n;

int main()
{
	int i, j;
    fin >> n;
    for (i = 1; i <= n; i ++)
	{
		fin >> a[i];
		lg[i] = 1;
	}
	for (i = n - 1; i >= 1; i --)
	{
		for (j = i + 1; j <= n; j ++)
			if (a[j] > a[i] && lg[j] + 1 > lg[i])
			{
				lg[i] = lg[j] + 1;
				succ[i] = j;
			}
	}
	for (i = 1; i <= n; i ++)
		if (lg[i] > lgmax)
		{
			inc = i;
			lgmax = lg[i];
		}
	fout << lgmax << '\n';
	for (i = 1; i <= lgmax; i ++)
	{
		fout << a[inc] << ' ';
		inc = succ[inc];
	}
    return 0;
}