1 solutions

  • 0
    @ 2025-11-5 17:56:19

    C++ :

    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int N = 5005;
    struct city{
    	int x,y;
    };
    city a[N];
    int f[N];
    
    bool comp(city m,city n){
    	return m.x<n.x;
    }
    
    int main(){
    	int n;
    	cin>>n;
    	for (int i=1; i<=n; i++) cin>>a[i].x>>a[i].y;
    	fill(f,f+N,1);
    	sort(a+1,a+n+1,comp);
    	for (int i=2; i<=n; i++)
    		for (int j=1; j<=i-1; j++)
    			if (a[j].y<a[i].y) f[i]=max(f[i],f[j]+1);
    	int ans=f[1];
    	for (int i=2; i<=n; i++) ans=max(ans,f[i]);
    	cout<<ans<<endl;
    	return 0;
    }
    
    • 1

    Information

    ID
    18658
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By