提交时间:2021-12-17 13:51:33

运行 ID: 35683

#include<bits/stdc++.h> using namespace std; struct node { int north,south; } a[200005]; int n,i,d[200005],len,temp,f1,f2; bool cmp(node x,node y) { return x.north<y.north; } int main () { cin.tie(0); cin>>f1>>f2>>n; for(i=1; i<=n; i++) cin>>a[i].north>>a[i].south; sort(a+1,a+1+n,cmp); d[++len]=a[1].south; for(i=2; i<=n; i++) { int l=upper_bound(d+1,d+len+1,a[i].south)-d; d[l]=a[i].south; if(l>len) len++; } cout<<len<<'\n'; return 0; }