#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