➤ Problem Link : 416C. Booking System
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int bool comp(pair<pair<int,int>,int > x, pair<pair<int,int>,int > y) { return x.first.first> y.first.first; } int main() { int n,k,ans=0,cnt=0,l; cin>>n; pair<pair<int,int>,int > req[n]; for(int i=0;i<n;i++) { req[i].second=i+1; cin>>req[i].first.second>>req[i].first.first; } cin>>k; multiset<pair<int,int> > st; for(int i=1;i<=k;i++) { cin>>l; st.insert(make_pair(l,i)); } sort(req,req+n,comp); vector<pair<int,int> > mat; for(int i=0;i<n;i++) { auto it=st.lower_bound({req[i].first.second,INT_MIN}); if(it != st.end()) { mat.push_back(make_pair(req[i].second,(*it).second)); st.erase(it); ans+=req[i].first.first; cnt++; } } sort(mat.begin(),mat.end()); cout<<cnt<<" "<<ans<<endl; for(auto it: mat) cout<<it.first<<" "<<it.second<<endl; }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!