3
int maxEvents(vector<vector<int>> &events) {6
for (auto x : events) m = max(m, x[1]);8
sort(events.begin(), events.end());10
priority_queue<int, vector<int>, greater<int>> pq;11
for (int i = 1; i <= m; i++) {12
while (!pq.empty() && pq.top() < i) // end day is less than the current day15
while (j < events.size() && events[j][0] == i) // put all events start at day i16
pq.push(events[j++][1]);18
if (!pq.empty()) // we can attend an event today20
pq.pop(); // remove the event21
res++; // count that event