Cod sursa(job #2910184)

Utilizator radu.seitanSeitan Radu-Catalin radu.seitan Data 18 iunie 2022 17:17:13
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include<iostream>
using namespace std;

int scmaxr(int A[], int DP[], int result, int N, int j) {
	int i;
	if(j >= N - 1) {
		return result + 1;
	}
	else {
		for(i = j + 1; i < N - 1 ; i++) {
			if(A[j] < A[i]) {
				DP[i] = DP[j] + 1;
			}
			result = max(DP[i] + 1, DP[i + 1]);
		}
		return scmaxr(A, DP, result, N, j + 1);
	}
}


int scmax(int A[], int N) {
	int DP[N] = {};
	int result;

	for(int j = 0; j < N - 1 ; j++) {
		for(int i = j + 1; i < N ; i++) {
			if(A[j] < A[i]) {
				DP[i] = DP[j] + 1;
			}
			result = max(DP[i] + 1, DP[i + 1] + 1);
		}
	}

	return result + 1;
}

int main(void) {
	int A[] = {24, 12, 15, 16, 19, 17, 18};
	int DP[sizeof(A)/sizeof(A[0])] = {0};

	cout<<scmaxr(A, DP, 0, sizeof(A)/sizeof(A[0]) - 1, 0)<<endl;
	cout<<scmax(A, sizeof(A)/sizeof(A[0]) - 1);

	return 0;
}