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