Submission

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

Score: 0

User: Pandusk

Problemset: 06.Happiness

Language: cpp

Time: 0.060 second

Submitted On: 2025-04-17 12:03:11

#include<bits/stdc++.h>
using namespace std;
#define ll long long

int n;
priority_queue<int> pq;

int ans = 0;
ll sum = 0;

int main() {
    cin >> n;
    while(n--) {
        int a;
        cin >> a;
        if(a >= 0) {
            ++ans;
            sum += a;
            // cout << "push " << a << '\n';
        } else {
            if(sum + a >= 0) {
                pq.emplace(-a);
                sum += a;
                ++ans;
                // cout << "push " << a << '\n';
            } else {

                if(!pq.empty()) {
                    if(-a < pq.top()) {

                        int b = pq.top();
                        sum += b;
                        sum -= a;
                        pq.pop();
                        pq.emplace(-a);
                        // cout << -a << '\n';
                    }
                }
            }
        }
    }
    cout << ans;
}

/*
6
7 -2 -6 -5 0 1
*/