- #include<bits/stdc++.h>
- using namespace std;
- struct t{
- int north;
- int south;
- };
- t a[5006];
- int f[5005];
- bool cmp (t a,t b)
- {
- return a.north<b.north;
- }
- int main()
- {
- int n,i,j;
- cin>>n;
- for(int i=1;i<=n;i++)
- {
- cin>>a[i].north>>a[i].south;
- f[i]=1;
- }
- sort(a+1,a+n+1,cmp);
- for(int i=2;i<=n;i++)
- {
- int maxx=0;
- for(j=1;j<i;j++)
- if(a[i].south>a[j].south&&f[j]>maxx)
- {
- maxx=f[j];
- }
- f[i]=maxx+1;
- }
- cout<<*max_element(f+1,f+1+n)<<endl;
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3099747.html