AC

许诺  •  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;

}


评论:

请先登录,才能进行评论