Cod sursa(job #2907111)

Utilizator raulciureRaul Ciure raulciure Data 28 mai 2022 19:25:34
Problema Subsir crescator maximal Scor 0
Compilator cpp-32 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <iostream>
#define max(a, b) (a) > (b) ? (a) : (b)

using namespace std;

int Max_Val(int* arr, unsigned len)
{
	int mx = arr[0];
	for (unsigned i = 1; i < len; i++)
		if (arr[i] > mx) mx = arr[i];
	return mx;
}

int main()
{
	ifstream fin("scmax.in");
	ofstream fout("scmax.out");
	unsigned N, i, j;
	int* a, * DP, mx, mx_len;

	fin >> N;
	a = (int*)malloc(N * sizeof(int));
	DP = (int*)malloc(N * sizeof(int));
	for (i = 0; i < N; i++) fin >> a[i];

	for (i = 0; i < N; ++i)
	{
		mx = 1;
		for (j = 0; j < i; ++j)
			if (a[j] < a[i] && DP[j] + 1 > mx) mx = DP[j] + 1;
		DP[i] = max(1, mx);
	}
	mx_len = Max_Val(DP, N);

	cout << mx_len;

	fin.close(); fout.close();
	free(a); free(DP);
	return 0;
}