#include <bits/stdc++.h>
using namespace std;
int getSum(vector<int>arr,int n){
vector<int>dp(n,0);
dp[0]=arr[0];
dp[1]=dp[0]+arr[1];
for(int i=2;i<n;i++){
dp[i]=max(dp[i-1]+arr[i],dp[i-2]+arr[i]); //as we can make 1 or 2 jumps back and current element must be included
}
return dp[n-1];
}
int main() {
// your code goes here
vector<int>arr={1,2,-1,3,4};
int n=arr.size();
cout<<"The maximum sum of all elements by performing required 1 or 2 jumps is:"<<getSum(arr,n);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBnZXRTdW0odmVjdG9yPGludD5hcnIsaW50IG4pewoJdmVjdG9yPGludD5kcChuLDApOwoJZHBbMF09YXJyWzBdOwoJZHBbMV09ZHBbMF0rYXJyWzFdOyAKCWZvcihpbnQgaT0yO2k8bjtpKyspewoJCWRwW2ldPW1heChkcFtpLTFdK2FycltpXSxkcFtpLTJdK2FycltpXSk7ICAvL2FzIHdlIGNhbiBtYWtlIDEgb3IgMiBqdW1wcyBiYWNrIGFuZCBjdXJyZW50IGVsZW1lbnQgbXVzdCBiZSBpbmNsdWRlZAoJfQoJcmV0dXJuIGRwW24tMV07Cn0KIAppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXZlY3RvcjxpbnQ+YXJyPXsxLDIsLTEsMyw0fTsKCWludCBuPWFyci5zaXplKCk7Cgljb3V0PDwiVGhlIG1heGltdW0gc3VtIG9mIGFsbCBlbGVtZW50cyBieSBwZXJmb3JtaW5nIHJlcXVpcmVkIDEgb3IgMiBqdW1wcyBpczoiPDxnZXRTdW0oYXJyLG4pOwoJcmV0dXJuIDA7Cn0=