Maximum sum of non consecutive elements

#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;
}