提交时间:2023-12-16 09:35:32
运行 ID: 116233
#include<bits/stdc++.h> using namespace std; int max(int x,int y) { if (x>y) return x; if (x<=y) return y; } int main() { int a; cin>>a; int byd[a+1],dp1[a+1],dp2[a+1]; for (int i=1;i<=a;i++) { cin>>byd[i]; dp1[i]=0; dp2[i]=0; } dp1[0]=0;dp2[0]=0; dp1[1]=byd[1]; //取尾 for (int i=2;i<=a-1;i++) { dp1[i]=max(dp1[i-1],(byd[i]+dp1[i-2])); } //取头 dp2[2]=byd[2]; for (int i=3;i<=a;i++) { dp2[i]=max(dp2[i-2],(byd[i]+dp2[i-1])); } cout<<max(dp1[a-1],dp2[a]); return 0; }