#include <iostream>
#include <bits/stdc++.h>
using namespace std;
class Interval
{
public :
int startTime;
int endTime;
Interval(int startTimeObj,int endTimeObj)
{
startTime = startTimeObj;
endTime = endTimeObj;
}
};
class RoomService
{
public:
int roomNum;
unordered_map <int ,vector<Interval>> roomMap;
RoomService(int n)
{
roomNum =n;
}
int createMeeting(int startTime,int endTime)
{
int roomAssigned =-1;
Interval givenInterval(startTime,endTime);
for(int i=0;i<roomNum;i++)
{
if(!roomMap.count(i))
{
roomAssigned = i;
break;
}
else
{
for(auto it : roomMap[i])
{
if(startTime>it.startTime && startTime < it.endTime )
continue;
if(endTime>it.startTime && endTime < it.endTime )
continue;
cout<<"hehe"<<roomAssigned<<it.startTime<<it.endTime;
roomAssigned = i;
}
}
}
if(roomAssigned!=-1)
{
roomMap[roomAssigned].push_back(givenInterval);
return roomAssigned;
}
else
{
// throw expception
return roomAssigned;
}
}
};
int main() {
RoomService rs (1);
Interval v (1000,2000);
Interval v1 (500,700);
cout<<"Started assigning";
cout<<"\n";
cout<<rs.createMeeting(1000,2000);
cout<<"\n";
cout<<"ttwetfg" <<rs.roomMap[0].size();
cout<<"\n";
cout<<rs.createMeeting(500,700);
cout<<"\n";
cout<<"thdcjyfdjf" <<rs.roomMap[0].size();
cout<<"\n";
cout<<rs.createMeeting(1100,1700);
cout<<"\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEludGVydmFsCnsKCXB1YmxpYyA6CglpbnQgc3RhcnRUaW1lOwoJaW50IGVuZFRpbWU7CglJbnRlcnZhbChpbnQgc3RhcnRUaW1lT2JqLGludCBlbmRUaW1lT2JqKQoJewoJCXN0YXJ0VGltZSA9IHN0YXJ0VGltZU9iajsKCQllbmRUaW1lID0gZW5kVGltZU9iajsKCX0KfTsKY2xhc3MgUm9vbVNlcnZpY2UKewoJcHVibGljOgoJaW50IHJvb21OdW07Cgl1bm9yZGVyZWRfbWFwIDxpbnQgLHZlY3RvcjxJbnRlcnZhbD4+IHJvb21NYXA7CglSb29tU2VydmljZShpbnQgbikKCXsKCQkKCQlyb29tTnVtID1uOwoJfQoJCglpbnQgY3JlYXRlTWVldGluZyhpbnQgc3RhcnRUaW1lLGludCBlbmRUaW1lKQoJewoJCWludCByb29tQXNzaWduZWQgPS0xOwoJCUludGVydmFsIGdpdmVuSW50ZXJ2YWwoc3RhcnRUaW1lLGVuZFRpbWUpOwoJCWZvcihpbnQgaT0wO2k8cm9vbU51bTtpKyspCgkJewoJCQlpZighcm9vbU1hcC5jb3VudChpKSkKCQkJewoJCQkJcm9vbUFzc2lnbmVkID0gaTsKCQkJCWJyZWFrOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJZm9yKGF1dG8gaXQgOiByb29tTWFwW2ldKQoJCQkJewoJCQkJCWlmKHN0YXJ0VGltZT5pdC5zdGFydFRpbWUgJiYgc3RhcnRUaW1lIDwgaXQuZW5kVGltZSApCgkJCQkJY29udGludWU7CgkJCQkJaWYoZW5kVGltZT5pdC5zdGFydFRpbWUgJiYgZW5kVGltZSA8IGl0LmVuZFRpbWUgKQoJCQkJCWNvbnRpbnVlOwoJCQkJCWNvdXQ8PCJoZWhlIjw8cm9vbUFzc2lnbmVkPDxpdC5zdGFydFRpbWU8PGl0LmVuZFRpbWU7CgkJCQkJcm9vbUFzc2lnbmVkID0gaTsKCQkJCX0KCQkJfQoJCX0KCQlpZihyb29tQXNzaWduZWQhPS0xKQoJCXsKCQkJcm9vbU1hcFtyb29tQXNzaWduZWRdLnB1c2hfYmFjayhnaXZlbkludGVydmFsKTsKCQkJcmV0dXJuIHJvb21Bc3NpZ25lZDsKCQl9CgkJZWxzZQoJCXsKCQkJLy8gdGhyb3cgZXhwY2VwdGlvbgoJCQlyZXR1cm4gcm9vbUFzc2lnbmVkOwoJCX0KCX0KfTsKCmludCBtYWluKCkgewoJUm9vbVNlcnZpY2UgcnMgKDEpOwoJSW50ZXJ2YWwgdiAoMTAwMCwyMDAwKTsKCUludGVydmFsIHYxICg1MDAsNzAwKTsKCWNvdXQ8PCJTdGFydGVkIGFzc2lnbmluZyI7Cgljb3V0PDwiXG4iOwoJY291dDw8cnMuY3JlYXRlTWVldGluZygxMDAwLDIwMDApOwoJY291dDw8IlxuIjsKCWNvdXQ8PCJ0dHdldGZnIiA8PHJzLnJvb21NYXBbMF0uc2l6ZSgpOwoJY291dDw8IlxuIjsKCWNvdXQ8PHJzLmNyZWF0ZU1lZXRpbmcoNTAwLDcwMCk7Cgljb3V0PDwiXG4iOwoJY291dDw8InRoZGNqeWZkamYiIDw8cnMucm9vbU1hcFswXS5zaXplKCk7Cgljb3V0PDwiXG4iOwoJY291dDw8cnMuY3JlYXRlTWVldGluZygxMTAwLDE3MDApOwoJY291dDw8IlxuIjsKCXJldHVybiAwOwp9