1
#define ipair pair<int, int>
2
class Solution {
3
public:
4
int maxTwoEvents(vector<vector<int>> &events) {
5
// sort based on smaller start time
6
sort(events.begin(), events.end());
7

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 whose
12
// deadline is less than start time of curr event
13
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();
15

16
ans = max(ans, mx + events[i][2]);
17
pq.push({events[i][1], events[i][2]});
18
}
19

20
return ans;
21
}
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0