|
- #include <algorithm>
- #include <iostream>
- #include <cmath>
- #include <cstring>
- #include <map>
- #include <string>
- #include <vector>
- #include <queue>
- #include <stack>
- #include <cstdio>
- #include <cstdlib>
- using namespace std;
- struct node
- {
- int l,w;
- }a[6000];
- int n,f[6000],ans=-1;
- bool cmp(node x,node y)
- {
- if(x.l!=y.l)
- return x.l<y.l;
- return x.w<y.w;
- }
- int main()
- {
- scanf("%d",&n);
- for(int i=1;i<=n;i++)
- scanf("%d%d",&a[i].l,&a[i].w);
- sort(a+1,a+1+n,cmp);
- for(int i=1;i<=n;i++)
- {
- f[i]=1;
- for(int j=1;j<i;j++)
- {
- if(a[j].w>a[i].w)
- f[i]=max(f[j]+1,f[i]);
- }
- }
- for(int i=1;i<=n;i++)
- ans=max(ans,f[i]);
- printf("%d",ans);
- return 0;
- }
复制代码 |
|