Untitled

 avatar
unknown
plain_text
a year ago
1.4 kB
5
Indexable
#define ll long long
class cmp{
    public:
    bool operator() (const pair<ll,int>&a , const pair<ll,int>&b){
        return a.first>b.first;
    }
};


class Solution {
public:
    int mostBooked(int n, vector<vector<int>>& meet) {
        sort(meet.begin(),meet.end());
        priority_queue<int,vector<int>,greater<int>> av;
        priority_queue<pair<ll,int>,vector<pair<ll,int>>,greater<pair<ll,int>>>used; //(end time , room no)
        unordered_map<int,int> freq; // room,freq
        for(int i=0;i<n;i++) av.push(i);

        for(auto &el : meet){
            ll start=el[0], end=el[1];

            //remove finished meetings
            while(!used.empty() && start >=used.top().first){
                av.push(used.top().second);
                used.pop();
            }

            //check availabillity
            if(av.empty()){
                end=used.top().first +(end-start);
                av.push(used.top().second);
                used.pop();
                //roo=used.top.second;
            }

            //start new meetings
            int room=av.top();
            av.pop();
            used.push({end,room});
            freq[room]++;

        }

        int ma = 0;
        for(int i = 1; i < n; i++) {
            if(freq[i] > freq[ma])
                ma = i;
        }
        return ma;
    }
};
Editor is loading...
Leave a Comment