#include <iostream>//O(NlogN)
#include <queue>
#include<algorithm>
using namespace std;
priority_queue<int,vector<int>,greater<int>>pq;
int n,ans;
struct node{
    int s,e;
    bool operator<(node b){
        return s<b.s;
    }
}a[10005];
int main() {
    cin>>n;
    for(int i=0;i<n;i++){
        scanf("%d %d",&a[i].s,&a[i].e);
    }
    sort(a,a+n);
    for(int i=0;i<n;i++){
        while(!pq.empty()&&pq.top()<=a[i].s){
            pq.pop();
        }
        pq.push(a[i].e);
        int t=pq.size();
        ans=max(ans,t);
    }
    cout<<ans;
}

第2题【算法讲解027【必备】堆结构常见题】 https://www.bilibili.com/video/BV1Gm4y1p7UE/?share_source=copy_web&vd_source=5065fa61022691e8df35c771a30e6d29