Submission

Status:
[PPP-SSSS][-SSSSSSS][-SSSSSSSS]

Score: 0

User: Dormon

Problemset: 06.Happiness

Language: cpp

Time: 0.028 second

Submitted On: 2025-03-31 10:41:10

#include <iostream>
#include <vector>
#include <array>

using namespace std;
#define fr first
#define se second

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n;
    cin >> n;

    vector<int> v(n + 1);
    vector<pair<int, int>> dp(n + 1);
    int ans = 0;

    auto calc = [&](pair<int, int> a, int v) -> pair<int, int> {
        pair<int, int> res = a;
        if (a.se + v >= 0)
            res = {a.fr + 1, a.se + v};
        return res;
    };

    dp[0] = {0, 0};
    dp[0] = {0, 0};
    for (int i = 1;i <= n;i++){
        cin >> v[i];
        dp[i] = calc(dp[i - 1], v[i]);
        if (i > 1)
            dp[i] = max(dp[i], calc(dp[i - 2], v[i]));

        // cout << i << ' ';   
        // cout << dp[i].fr << ' ' << dp[i].se << '\n';
    }

    cout << dp[n].fr << '\n';
}