#include<bits/stdc++.h> using namespace std; struct node{ int s,a; }; bool cmp(node x,node y){ if(x.a==y.a) return x.s>y.s; return x.a<y.a; } int main(){ int n; while(cin>>n){ struct node m[n]; for(int i=0;i<n;++i){ scanf("%d %d",&m[i].s,&m[i].a); } sort(m,m+n,cmp); int f[n]; for(int i=0;i<n;++i){ f[i]=1; for(int j=0;j<i;++j){ if(m[i].s<m[j].s) f[i]=max(f[j]+1,f[i]); } } int d=-1; for(int i=0;i<n;++i) d=max(d,f[i]); cout<<d<<endl; } } |
Double click to view unformatted code.