牛客 匹配星星
題面:
思路:
code:
//https://ac.nowcoder.com/acm/contest/3005/I
#include<bits/stdc++.h>
using namespace std;
const int maxm=1e5+5;
struct Node{
int a,b,c;
}e[maxm];
bool cmp(Node a,Node b){
return a.a<b.a;
}
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>e[i].a>>e[i].b>>e[i].c;
}
sort(e+1,e+1+n,cmp);
int ans=0;
multiset<int>s;
multiset<int>::iterator it;
for(int i=1;i<=n;i++){
if(e[i].c){
it=s.lower_bound(e[i].b);//找到第一個大於等於的
if(it!=s.begin()){
it--;//上一個就是y小於它的所有點中y最大的那個
s.erase(it);
ans++;
}
}else{
s.insert(e[i].b);
}
}
cout<<ans<<endl;
return 0;
}