#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> a;//存储每个星尘的能量
int num;
while(cin >> num)
{
a.push_back(num);
}
int len=a.size();
if(len==0)
{
cout<<0;
return 0;
}
if(len==1)
{
cout<<a[0];
return 0;
}
vector<int> dp(len,0);//动态规划数组,dp[i]代表前i+1个星尘所能获得的最大值
dp[0]=a[0];
dp[1]=max(a[0], a[1]);
for(int i=2; i<len; i++)
{
//选第i个或者不选第i个
dp[i]=max( dp[i-2]+a[i], dp[i-1]);
}
cout<<dp[len-1];
return 0;
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号