把m的值设为key,s的值设为value,基于红黑树的特点mp按key值按非递减序列排列 现在问题就转化为了一个数列 每个数后面是否有比他大的数了 模板题 用栈就好了

#include<map>
#include<stack>

using namespace std;

int main() {
    int n;
    map<int, int> mp;
    cin >> n;
    int m, s;
    while(n--) {
        cin >> m >> s;
        mp[m] = s;
    }
    stack<int> stk;
    int cnt = 0;
    for(auto it = mp.begin(); it != mp.end(); it++) {
        while(!stk.empty() && it->second >= stk.top()) {
            cnt++;
            stk.pop();
        }
        stk.push(it->second);
    }
    cout << cnt;
    return 0;
}