和区间选择有点像,不同可以相交
#include<bits/stdc++.h>
using namespace std;
int n;
int s[10000],t[10000];
pair<int,int>itv[10000];
void solve(){
sort(itv,itv+n); //根据结束时间排序
int ans=0,t=0;
for(int i=0;i<n;i++){
if(t<=itv[i].second){ //结束时间<=开始时间
ans++;
t=itv[i].first; //加上结束时间
}
}
cout <<ans<<endl;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>s[i]>>t[i];
itv[i].first=t[i];//结束时间
itv[i].second=s[i]; //开始时间
}
solve();
return 0;
}