652D. Nested Segments - Codeforces Solution C++

  Problem Link : 652D. Nested Segments 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;

#define ll long long int

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

#define ordered_set tree<ll, null_type,greater<ll>, rb_tree_tag,tree_order_statistics_node_update>

#define pp pair<ll,ll>
#define ppp pair<pp,ll>
#define mp make_pair

int main()
{

	ordered_set oset;
	int n;
	cin>>n;
	ppp arr[n];
	vector<ll> ans(n);
	for(int i=0;i<n;i++)
	{
		cin>>arr[i].first.second>>arr[i].first.first;
		arr[i].second=i;
	}
	sort(arr,arr+n);

	for(int i=0;i<n;i++)
	{
		ans[arr[i].second]=oset.order_of_key(arr[i].first.second);
		oset.insert(arr[i].first.second);
	}
	for(int v : ans)
		cout<<v<<"\n";


}

 

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