提交时间:2023-12-17 11:16:21

运行 ID: 116528

#include<iostream> using namespace std; int n; int num1[1001],num2[1001],dp1[1001],dp2[1001]; int ans1(){ //偷第1个房子 dp1[1]=num1[1]; for(int i=2;i<n;i++){ dp1[i]=max(dp1[i-1],dp1[i-2]+num1[i]); } return dp1[n]; } int ans2(){ //不偷第1个房子 dp2[1]=0; for(int i=2;i<=n;i++){ dp2[i]=max(dp2[i-1],dp2[i-2]+num2[i]); } return dp2[n]; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>num1[i]; num2[i]=num1[i]; } cout<<max(ans1(),ans2())<<endl; return 0; }