fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. class MeetingScheduler
  5. {
  6. public :
  7. priority_queue<pair<long long,int>, vector<pair<long long,int>>,
  8. greater<pair<long long,int>>> busyRooms;
  9. priority_queue<int, vector<int>, greater<int>> avblRooms;
  10.  
  11. MeetingScheduler(int n)
  12. {
  13. for(int i=1;i<=n;i++)
  14. {
  15. avblRooms.push(i);
  16. }
  17. }
  18.  
  19.  
  20. int scheduleMeeting(long long startTime,long long endTime )
  21.  
  22. {
  23. int room=-1;
  24. if (endTime <= startTime) {
  25. throw invalid_argument("Invalid meeting interval");
  26. }
  27.  
  28. while(busyRooms.size()!=0 && startTime >= busyRooms.top().first )
  29. {
  30. avblRooms.push(busyRooms.top().second);
  31. busyRooms.pop();
  32. }
  33.  
  34. if(avblRooms.size()==0)
  35. {
  36. return room;
  37. }
  38. else
  39. {
  40. room = avblRooms.top();
  41. avblRooms.pop();
  42. busyRooms.push({endTime,room});
  43. }
  44.  
  45. return room;
  46. }
  47. };
  48.  
  49. int main() {
  50. // your code goes here
  51. return 0;
  52. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Standard output is empty