416C. Booking System - Codeforces Solution C++

  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!!