提交时间:2022-07-19 11:51:42
运行 ID: 52284
#include <bits/stdc++.h> using namespace std; const int N=1e7+5; int n; long long F[N]; struct Ban { long long l,r; } B[N]; bool cmp(const Ban x,const Ban y) { return x.r>y.r; } int main() { long long maxx=0; scanf("%d",&n); for(int i=1; i<=n; i++) { scanf("%lld%lld",&B[i].l,&B[i].r); maxx=max(B[i].r,maxx); } sort(B+1,B+n+1,cmp); for(int i=1; i<=n; i++) for(int j=B[i].r; j>=B[i].l; j--) F[j]=max(F[j],F[B[i].l]+1); long long ans=0; for(int i=0; i<=maxx; i++) ans=max(F[i],ans); printf("%lld\n",ans); return 0; }