#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
/*Function to return max sum such that no two elements
are adjacent */
int size;
int FindMaxSum(int arr[],int sum, int n)
{
if(n>size-1) return sum;
//cout<<sum<<"\n";
return max(FindMaxSum(arr, sum+arr[n], n+2) , FindMaxSum(arr, sum, n+1));
}
/* Driver program to test above function */
int main()
{
int arr[] = {3,2,5,10,7};
size = sizeof(arr)/sizeof(arr[0]);
printf("%d \n", FindMaxSum(arr,0, 0));
getchar();
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGFsZ29yaXRobT4KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8qRnVuY3Rpb24gdG8gcmV0dXJuIG1heCBzdW0gc3VjaCB0aGF0IG5vIHR3byBlbGVtZW50cwogYXJlIGFkamFjZW50ICovCiBpbnQgc2l6ZTsKaW50IEZpbmRNYXhTdW0oaW50IGFycltdLGludCBzdW0sIGludCBuKQp7CiAgaWYobj5zaXplLTEpIHJldHVybiBzdW07CiAgLy9jb3V0PDxzdW08PCJcbiI7CiAgIHJldHVybiBtYXgoRmluZE1heFN1bShhcnIsIHN1bSthcnJbbl0sIG4rMikgLCBGaW5kTWF4U3VtKGFyciwgc3VtLCBuKzEpKTsKfQogCi8qIERyaXZlciBwcm9ncmFtIHRvIHRlc3QgYWJvdmUgZnVuY3Rpb24gKi8KaW50IG1haW4oKQp7CiAgaW50IGFycltdID0gezMsMiw1LDEwLDd9OwogIHNpemUgPSBzaXplb2YoYXJyKS9zaXplb2YoYXJyWzBdKTsKICBwcmludGYoIiVkIFxuIiwgRmluZE1heFN1bShhcnIsMCwgMCkpOwogIGdldGNoYXIoKTsKICByZXR1cm4gMDsKfQ==