提交时间:2024-07-21 20:47:46

运行 ID: 158111

#include<bits/stdc++.h> using namespace std; const int N=4e4+10; struct Node { int a,b; }node[N]; bool cmp(Node a,Node b){ return (a.a !=b.a ?a.a <b.a :a.b<b.b ); } int n; int f[N],ans; int main (){ cin>>n; for(int i=1;i<=n;i++){ f[i]=1; cin>>node[i].a >>node[i].b ; if(node[i].a >node[i].b )swap(node[i].a ,node[i].b ) ; } sort(node+1,node+1+n,cmp); for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if(node[j].b <node[i].a )f[i]=max(f[i],f[j]+1),ans=max(ans,f[i]); } } cout<<ans; }