提交时间:2022-07-19 12:11:21
运行 ID: 52435
#include <bits/stdc++.h> using namespace std; int a[2001][2002]; struct abc { int l,r; int lenth; } ae[5000110]; //bool cmp(abc a,abc b) //{ // if (a.lenth==b.lenth) // { // return a.l<a.r ; // } // else return a.lenth>b.lenth; //} bool cmp(abc a,abc b) { if (a.lenth==b.lenth) { return a.l>a.r ; } else return a.lenth<b.lenth; } int main() { int n; std::cin>>n; int maxn=0;//u for (int i=1; i<=n; i++) { cin>>ae[i].l>>ae[i].r; ae[i].lenth=ae[i].r-ae[i].l+1; } sort(ae+1,ae+n+1,cmp); a[ae[1].l][ae[1].r]=1; for (int i=1; i<=n; i++) { for (int j=1; j<=i; j++)//g if(ae[j].l>ae[i].l && ae[j].r<ae[i].r)a[ae[i].l ][ae[i].r ]=max(a[ae[i].l ][ae[i].r ],a[ae[j].l ][ae[j].r ])+1; maxn=max(a[ae[i].l ][ae[i].r ],maxn);//b } std::cout<<maxn<<endl; //return 0; return 0; }