Pagini recente » Cod sursa (job #2647482) | Cod sursa (job #1094600) | Cod sursa (job #1590736) | Cod sursa (job #2452491) | Cod sursa (job #2910184)
#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;
}