1
#define ipair pair<int, int>4
int maxTwoEvents(vector<vector<int>> &events) {5
// sort based on smaller start time6
sort(events.begin(), events.end());8
int mx = 0, ans = 0, n = events.size();9
priority_queue<ipair, vector<ipair>, greater<>> pq;10
// pq conatins {event_endtime , even_value}11
// for every event check the max-value of earlier events whose12
// deadline is less than start time of curr event13
for (int i = 0; i < n; i++) {14
while (!pq.empty() && pq.top().first < events[i][0]) mx = max(mx, pq.top().second), pq.pop();16
ans = max(ans, mx + events[i][2]);17
pq.push({events[i][1], events[i][2]});