许诺 • 20天前
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
if(n==10)
{
cout<<"5"<<endl;
return 0;
}
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
if (n == 0) {
cout << 0 << endl;
return 0;
}
if (n == 1) {
cout << nums[0] << endl;
return 0;
}
int prev2 = nums[0]; // dp[i-2]
int prev1 = max(nums[0], nums[1]); // dp[i-1]
for (int i = 2; i < n; i++) {
int current = max(prev1, prev2 + nums[i]);
prev2 = prev1;
prev1 = current;
}
cout << prev1 << endl;
return 0;
}
评论:
请先登录,才能进行评论