两个端点不能同时出现
#include <stdio.h>

int main(){
    int n = 0;
    scanf("%d",&n);
    int arr[n];
    int dp[n];
    int dp1[n];
    int res = 0,res1 = 0;
    for(int i = 0; i < n; i++){
        scanf("%d",&arr[i]);
        dp[i] = 0;
        dp1[i] = 0;
    }
    for(int i = 0; i < n-1; i++){
        if(i == 0 || i == 1){
            dp[i] = arr[i];
        }
        else if(i == 2){
            dp[i] = arr[i] + arr[i-2];
        }
        else{
            dp[i] = dp[i-2] >  dp[i-3] ? dp[i-2] : dp[i-3];
            dp[i] += arr[i];
        }
    }
    res = dp[n-2] > dp[n-3] ? dp[n-2] : dp[n-3];
    for(int i = 1; i < n; i++){
        if(i == 1 || i == 2){
            dp1[i] = arr[i];
        }
        else if(i == 3){
            dp1[i] = arr[i] + arr[i-2];
        }
        else{
            dp1[i] = dp1[i-2] >  dp1[i-3] ? dp1[i-2] : dp1[i-3];
            dp1[i] += arr[i];
        }
    }
    res1 = dp1[n-1] > dp1[n-2] ? dp1[n-1] : dp1[n-2];
    printf("%d", res > res1 ? res : res1);
    return 0;
}