fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. class Interval
  6. {
  7. public :
  8. int startTime;
  9. int endTime;
  10. Interval(int startTimeObj,int endTimeObj)
  11. {
  12. startTime = startTimeObj;
  13. endTime = endTimeObj;
  14. }
  15. };
  16. class RoomService
  17. {
  18. public:
  19. int roomNum;
  20. unordered_map <int ,vector<Interval>> roomMap;
  21. RoomService(int n)
  22. {
  23.  
  24. roomNum =n;
  25. }
  26.  
  27. int createMeeting(int startTime,int endTime)
  28. {
  29. int roomAssigned =-1;
  30. Interval givenInterval(startTime,endTime);
  31. for(int i=0;i<roomNum;i++)
  32. {
  33. if(!roomMap.count(i))
  34. {
  35. roomAssigned = i;
  36. break;
  37. }
  38. else
  39. {
  40. for(auto it : roomMap[i])
  41. {
  42. if(startTime>it.startTime && startTime < it.endTime )
  43. continue;
  44. if(endTime>it.startTime && endTime < it.endTime )
  45. continue;
  46. cout<<"hehe"<<roomAssigned<<it.startTime<<it.endTime;
  47. roomAssigned = i;
  48. }
  49. }
  50. }
  51. if(roomAssigned!=-1)
  52. {
  53. roomMap[roomAssigned].push_back(givenInterval);
  54. return roomAssigned;
  55. }
  56. else
  57. {
  58. // throw expception
  59. return roomAssigned;
  60. }
  61. }
  62. };
  63.  
  64. int main() {
  65. RoomService rs (1);
  66. Interval v (1000,2000);
  67. Interval v1 (500,700);
  68. cout<<"Started assigning";
  69. cout<<"\n";
  70. cout<<rs.createMeeting(1000,2000);
  71. cout<<"\n";
  72. cout<<"ttwetfg" <<rs.roomMap[0].size();
  73. cout<<"\n";
  74. cout<<rs.createMeeting(500,700);
  75. cout<<"\n";
  76. cout<<"thdcjyfdjf" <<rs.roomMap[0].size();
  77. cout<<"\n";
  78. cout<<rs.createMeeting(1100,1700);
  79. cout<<"\n";
  80. return 0;
  81. }
Success #stdin #stdout 0.01s 5312KB
stdin
Standard input is empty
stdout
Started assigning
0
ttwetfg1
hehe-1100020000
thdcjyfdjf2
hehe-15007000