#include <bits/stdc++.h> using namespace std; struct node{ int left; int right; }a[200010]; int n,ans=1; bool cmp(node A,node B) { return A.right<B.right; } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].left>>a[i].right; } sort(a+1,a+n+1,cmp); int tmp=1; for(int j=2;j<=n;j++) { if(a[tmp].right<=a[j].left) {tmp=j;ans++;} else continue; } cout<<ans; } /* 时间刻度 0 1 2 3 4 5 6 7 8 9 10 11 1 3 1 4 3 5 按照活动最晚结束时间进行右侧排序 如果i个活动的最晚结束时间小于或等于i+1个活动的最早开始时间,就数量加1(统计数量要从1开始,因为要包含i本身) 否则跳过,进行下一次循环。 */