提交时间:2022-07-19 12:12:25

运行 ID: 52444

#include <bits/stdc++.h> using namespace std; struct node { int l,r; } a[500005]; int n; long long ans,dp[500005]; bool cmp(node x,node y) { return x.r-x.l>y.r-y.l; } int main() { cin>>n; for(int i=1; i<=n; i++) { cin>>a[i].l>>a[i].r; } sort(a+1,a+n+1,cmp); for(int i=1; i<=n; i++) for(int j=1; j<i; j++) { if(a[i].l>=a[j].l&&a[i].r<=a[j].r)dp[i]=max(dp[i],dp[j])+1; ans=max(ans,dp[i]); } cout<<ans; return 0; }