Submission #1246342

#TimeUsernameProblemLanguageResultExecution timeMemory
1246342chikien2009Fuel Station (NOI20_fuelstation)C++20
36 / 100
76 ms8176 KiB
#include <bits/stdc++.h>

using namespace std;

void setup()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}

int n, d, base, add;
array<int, 3> a[300001];
priority_queue<pair<int, int>> pq;

int main()
{
    setup();

    cin >> n >> d;
    for (int i = 0; i < n; ++i)
    {
        cin >> a[i][0] >> a[i][1] >> a[i][2];
    }
    sort(a, a + n);
    a[n] = {d, 0, d};
    for (int i = 0; i <= n; ++i)
    {
        while (base + add < a[i][0])
        {
            base = a[i][0] - add;
            while (!pq.empty() && -pq.top().first < base)
            {
                add -= pq.top().second;
                pq.pop();
            }
        }
        if (base <= a[i][2])
        {
            pq.push({-a[i][2], a[i][1]});
            add += a[i][1];
        }
    }
    cout << base;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...