➤ Problem Link : POSTERS
👉 Hint : edit please
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define mp make_pair
ll st[40000001];
bool lazy[40000001];
pair<ll,ll> arr[200001];
void build(ll v, ll l, ll r)
{
if(l==r)
{
lazy[v]=0;
st[v]=0;
return ;
}
ll mid=(l+r)/2;
build(2*v,l,mid);
build(2*v+1,mid+1,r);
lazy[v]=0;
st[v]=0;
}
void propagateLazy(ll v, ll l, ll r)
{
if(l!=r)
{
lazy[2*v]=1;
lazy[2*v+1]=1;
}
st[v]=(r-l+1);
}
void update(ll v, ll s , ll e, ll l, ll r)
{
if(lazy[v])
propagateLazy(v,s,e);
if(s>r || e<l)
return;
if(s>=l && e<=r)
{
lazy[v]=1;
propagateLazy(v,s,e);
return;
}
ll mid=(s+e)/2;
update(2*v,s,mid,l,r);
update(2*v+1,mid+1,e,l,r);
st[v]=st[2*v]+st[2*v+1];
}
ll query(ll v, ll s, ll e, ll l, ll r)
{
if(lazy[v])
propagateLazy(v,s,e);
if(s>r || e<l)
return 0;
if(s>=l && e<=r)
return st[v];
ll mid=(s+e)/2;
return query(2*v,s,mid,l,r)+query(2*v+1,mid+1,e,l,r);
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
ll mx=pow(10,7);
for(ll i=1;i<=n;i++)
cin>>arr[i].first>>arr[i].second;
build(1,1,mx);
ll cnt=0;
ll curr;
for(int i=n;i>=1;i--)
{
curr=query(1,1,mx,arr[i].first,arr[i].second);
if(curr<arr[i].second-arr[i].first+1)
cnt++;
update(1,1,mx,arr[i].first,arr[i].second);
}
cout<<cnt<<"\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!!
