提交时间:2024-04-06 20:32:11

运行 ID: 142280

#include<iostream> #include<algorithm> using namespace std; int dp[5001]; struct Line{ int cn; int cs; }line[10001]; bool cmp(Line a,Line b){ return a.cn<b.cn; } int main(){ int x,y,n; cin>>x>>y; cin>>n; for(int i=1;i<=n;i++){ cin>>line[i].cn>>line[i].cs; } sort(line+1,line+n+1,cmp); for(int i=1;i<=n;i++){ int max_=0; for(int j=1;j<i;j++){ if(dp[j]>max_ && line[j].cs<=line[i].cs){ max_=dp[j]; } } dp[i]=max_+1; } int ans=0; for(int i=1;i<=n;i++){ if(dp[i]>ans){ ans=dp[i]; } } cout<<ans<<endl; return 0; }