➤ Problem Link : 725D. Contest Balloons
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define pp pair<ll,ll>
#define mp make_pair
int main()
{
int n;
cin>>n;
pp arr[n];
for(ll i=0;i<n;i++)
cin>>arr[i].first>>arr[i].second;
pp m=arr[0];
sort(arr+1,arr+n);
priority_queue<ll,vector<ll>,greater<ll> > pq;
ll j=n-1;
ll ans=LONG_MAX;
while(1)
{
while(arr[j].first > m.first && j>0)
{
if(arr[j].second >= arr[j].first)
pq.push(arr[j].second - arr[j].first+1);
j--;
}
// cout<<pq.size()<<"\n";
ans=min(ans,(ll)pq.size()+1);
// cout<<ans<<"\n";
if(pq.size()==0)
break;
ll v = pq.top();
pq.pop();
// cout<<v<<"\n";
if(v>m.first)
break;
m.first-=v;
}
cout<<ans;
}
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!!
