把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;
}