提交时间:2024-04-03 14:00:15

运行 ID: 141337

#include<bits/stdc++.h> using namespace std; const long long N=100010; struct Node { long long a,b; }node[N]; long long f[N],maxn; bool cmp(Node a,Node b){ return a.a <b.a ; } int main(){ long long n; cin>>n; for(long long i=1;i<=n;i++){ cin>>node[i].a >>node[i].b ; f[i]=1; } sort(node+1,node+1+n,cmp); for(long long i=n-1;i>=1;i--){ for(long long j=i+1;j<=n;j++){ if(!((node[i].a <=node[j].a &&node[i].b>=node[j].b)||(node[i].a >=node[j].a &&node[i].b<=node[j].b)))f[i]=max(f[i],f[j]+1); maxn=max(maxn,f[i]); } } cout<<maxn; }