#include <iostream>
#include <vector>
#include <algorithm>
int maxSumNonConsecutive(const std::vector<int>& nums) {
if (nums.empty()) {
return 0;
}
int n = nums.size();
if (n == 1) {
return nums[0];
}
int inclusive = nums[0];
int exclusive = 0;
for (int i = 1; i < n; ++i) {
int temp = std::max(inclusive, exclusive);
inclusive = exclusive + nums[i];
exclusive = temp;
}
return std::max(inclusive, exclusive);
}
int main() {
std::vector<int> nums = {3, 2, 7, 10};
std::cout << "Maximum sum of non-consecutive elements: " << maxSumNonConsecutive(nums) << std::endl;
return 0;
}