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';
}