#include <bits/stdc++.h>
using
namespace
std;
int
dp[100][3];
int
maxSum(
int
* arr,
int
i,
int
n,
int
prev,
bool
is_selected)
{
if
(i == n) {
return
0;
}
int
cur =
abs
(arr[i]) % 2;
if
(dp[i][prev] != -1) {
return
dp[i][prev];
}
if
(i == n - 1 && is_selected == 0)
return
dp[i][prev] = arr[i];
if
(cur != prev) {
dp[i][prev] = arr[i]
+ maxSum(arr, i + 1,
n, cur, 1);
}
dp[i][prev]
= max(dp[i][prev],
maxSum(arr, i + 1, n,
prev, is_selected));
return
dp[i][prev];
}
void
maxSumUtil(
int
arr[],
int
n)
{
memset
(dp, -1,
sizeof
(dp));
cout << maxSum(arr, 0, n, 2, 0);
}
int
main()
{
int
arr[] = { 1, 2, 6, 8, -5, 10 };
int
N =
sizeof
(arr) /
sizeof
(arr[0]);
maxSumUtil(arr, N);
return
0;
}
Original page link
Best Cool Tech Gadgets
Top favorite technology gadgets
0 comments:
Post a Comment