My issue
My code
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int solve(int *arr,int ind,int n,int inc,int dp[][2]){
if(ind>=n)return 0;
if(inc<2){
if(dp[ind][1]!=-1){
return dp[ind][1];
}
}
else{
if(dp[ind][0]!=-1)
return dp[ind][0];
}
int donot =dp[ind][0]= solve(arr,ind+1,n,0,dp);
int doselect = 0;
if(inc<2){
doselect =dp[ind][1]= arr[ind]+solve(arr,ind+1,n,inc+1,dp);
}
return max(donot,doselect);
}
int main() {
// your code goes here
int n;
cin>>n;
int arr[n];
int dp[n+1][2]={-1};
for(int i=0;i<n;i++){
cin>>arr[i];
}
cout<<solve(arr,0,n,0,dp)<<endl;
return 0;
}
Problem Link: CodeChef: Practical coding for everyone