分析
将n个区间按右端点r从小到大排序,若每次遍历时l比上一次ed大,那么区间数+1,更新ed;
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int n;
struct Range{
int l,r;
bool operator <(const Range& w)const{
return r<w.r;
}
}range[N];
int main(){
cin>>n;
for(int i=0;i<n;i++)cin>>range[i].l>>range[i].r;
sort(range,range+n);
int res=0,ed=-2e9;
for(int i=0;i<n;i++){
if(range[i].l>ed){
ed=range[i].r;
res++;
}
}
cout<<res<<endl;
return 0;
}