Pagini recente » Cod sursa (job #3176764) | Cod sursa (job #320906) | Cod sursa (job #2371566) | Cod sursa (job #1172806) | Cod sursa (job #2910183)
#include<iostream>
using namespace std;
int ssmr(int A[], int DP[], int result, int N, int pos) {
if(pos >= N) {
return result;
}
else {
DP[pos + 1] = max(A[pos], A[pos] + DP[pos]);
return ssmr(A, DP, max(result, DP[pos + 1]), N, pos + 1);
}
}
int ssm(int A[], int N) {
int DP[N];
int result;
DP[0] = 0;
for(int i = 0; i < N; i++) {
DP[i + 1] = max(A[i], A[i] + DP[i]);
result = max(DP[i], DP[i + 1]);
}
return result;
}
int main(void) {
int A[] = {5, -6, 3, 4, -2, 3, -3};
int DP[sizeof(A)/sizeof(A[0])] = {};
cout<<ssmr(A, DP, 0, sizeof(A)/sizeof(A[0]) - 1, 0)<<endl<<endl;
cout<<ssm(A, sizeof(A)/sizeof(A[0]) - 1);
return 0;
}