➤ Problem Link : 1044A. The Tower is Going Home
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int vector<ll> vert; vector<pair<ll,pair<ll,ll> > > horz; bool comp(pair<ll,pair<ll,ll> > x, pair<ll,pair<ll,ll> > y) { return x.second.second>y.second.second; } bool comp2(ll x,ll y) { return x>y; } int main() { ll n,m; cin>>n>>m; ll u,v,w; ll ansC=0; for(ll i=1;i<=n;i++) { cin>>v; vert.push_back(v); } for(ll i=1;i<=m;i++) { cin>>u>>v>>w; if(u!=1) continue; else if(v==pow(10,9)) ansC++; else horz.push_back(make_pair(w,make_pair(u,v))); } sort(vert.begin(),vert.end(),comp2); sort(horz.begin(),horz.end(),comp); ll i=0,j=0; ll cnt=0; ll ans=pow(10,6); ll s=vert.size(); ans=min(ans,s); while(i<horz.size() && j<s) { if(horz[i].second.second < vert[j]) { ans=min(ans,s-j-1+cnt); j++; continue; } cnt++; i++; } if(j<vert.size()) { ans=min(ans,cnt); } cout<<ans+ansC; }
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!!