提交时间:2022-07-19 12:43:01

运行 ID: 52536

#include <bits/stdc++.h> using namespace std; int n; int mx=-1; struct node { long long li,ri,len; } l[2010]; int f[2010]; bool cmp(node x,node y) { if(x.len<y.len)return 0; else return 1; } int main() { cin>>n; for(int i=1; i<=n; i++) { cin>>l[i].li>>l[i].ri; l[i].len=l[i].ri-l[i].li+1; } sort(l+1,l+n+1,cmp); f[1]=1; for(int i=1; i<=n; i++) { for(int j=i+1; j<=n; j++) { if(l[i].li<=l[j].li&&l[i].ri>=l[j].ri) { f[i]=max(f[j],f[i]+1); } } } for(int i=1; i<=n; i++) { mx=max(mx,f[i]); } cout<<mx<<endl; return 0; }