两个端点不能同时出现
#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;
}