#include<bits/stdc++.h>
using namespace std;
struct Interval {
int start;
int end;
Interval() : start(0), end(0) {}
Interval(int s, int e) : start(s), end(e) {}
};
class Solution
{
public:
int minMeetingRooms(vector<Interval>& intervals) {
map<int, int> changes;
for (auto i : intervals)
{
changes[i.start] += 1;
changes[i.end] -= 1;
}
int rooms = 0, maxrooms = 0;
for (auto change : changes)
{
// cout<<change.second<<endl;
maxrooms = max(maxrooms, rooms += change.second);
}
return maxrooms;
}
};
int main(void) {
Solution solution;
vector<Interval> intervals = {{1, 3}, {2, 4}, {3, 5}};
cout << solution.minMeetingRooms(intervals) << "\tPassed\n";
intervals.clear();
//cout << solution.minMeetingRooms(intervals) << "\tPassed\n";
// intervals = {{9, 10}, {4, 9}, {4, 17}};
// cout << solution.minMeetingRooms(intervals) << "\tPassed\n";
// cout << "\nPassed All\n";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IEludGVydmFsIHsKCWludCBzdGFydDsKCWludCBlbmQ7CglJbnRlcnZhbCgpIDogc3RhcnQoMCksIGVuZCgwKSB7fQoJSW50ZXJ2YWwoaW50IHMsIGludCBlKSA6IHN0YXJ0KHMpLCBlbmQoZSkge30KfTsKY2xhc3MgU29sdXRpb24KewpwdWJsaWM6CmludCBtaW5NZWV0aW5nUm9vbXModmVjdG9yPEludGVydmFsPiYgaW50ZXJ2YWxzKSB7CiAgICBtYXA8aW50LCBpbnQ+IGNoYW5nZXM7CiAgICBmb3IgKGF1dG8gaSA6IGludGVydmFscykKICAgIHsKICAgICAgICBjaGFuZ2VzW2kuc3RhcnRdICs9IDE7CiAgICAgICAgY2hhbmdlc1tpLmVuZF0gLT0gMTsKICAgIH0KICAgIGludCByb29tcyA9IDAsIG1heHJvb21zID0gMDsKICAgIGZvciAoYXV0byBjaGFuZ2UgOiBjaGFuZ2VzKQogICAgewogICAgIC8vICAgY291dDw8Y2hhbmdlLnNlY29uZDw8ZW5kbDsKICAgICAgICBtYXhyb29tcyA9IG1heChtYXhyb29tcywgcm9vbXMgKz0gY2hhbmdlLnNlY29uZCk7CiAgICB9CiAgICByZXR1cm4gbWF4cm9vbXM7Cn0KfTsKCmludCBtYWluKHZvaWQpIHsKCVNvbHV0aW9uIHNvbHV0aW9uOwoJdmVjdG9yPEludGVydmFsPiBpbnRlcnZhbHMgPSB7ezEsIDN9LCB7MiwgNH0sIHszLCA1fX07Cgljb3V0IDw8IHNvbHV0aW9uLm1pbk1lZXRpbmdSb29tcyhpbnRlcnZhbHMpIDw8ICJcdFBhc3NlZFxuIjsKCWludGVydmFscy5jbGVhcigpOwoJLy9jb3V0IDw8IHNvbHV0aW9uLm1pbk1lZXRpbmdSb29tcyhpbnRlcnZhbHMpIDw8ICJcdFBhc3NlZFxuIjsKLy8JaW50ZXJ2YWxzID0ge3s5LCAxMH0sIHs0LCA5fSwgezQsIDE3fX07Ci8vCWNvdXQgPDwgc29sdXRpb24ubWluTWVldGluZ1Jvb21zKGludGVydmFscykgPDwgIlx0UGFzc2VkXG4iOwovLwljb3V0IDw8ICJcblBhc3NlZCBBbGxcbiI7CglyZXR1cm4gMDsKfQo=