1 solutions

  • 0
    @ 2025-11-5 15:43:26

    C++ :

    #include<stdio.h>
    #include <algorithm>
    using namespace std;
    typedef struct node
    {
    	int len,wei;
    };
    int cc( const node& a, const node& b ) {  
        return ( a.len < b.len || ( a.len == b.len && a.wei < b.wei ) );  
    }  
    int main()
    {
    	int t;scanf("%d",&t);
    	while(t--)
    	{
    		int n;scanf("%d",&n);
    		node k[5000];
    		int as[5000]={0};
    		for (int i=0;i<n;i++)
    			scanf("%d%d",&k[i].len,&k[i].wei);
    		sort(k,k+n,cc);
    		int sum=0;
    		for (int i=0;i<n;i++)
    			if(!as[i])
    			{
    				sum++;
    				as[i]=1;
    				int ww=k[i].wei;
    				for (int kk=i+1;kk<n;kk++)
    					if (!as[kk]&&k[kk].wei>=ww)
    					{
    						as[kk]=1;
    						ww=k[kk].wei;
    					}
    			}
    			printf("%d\n",sum);
    	}
    	return 0;
    }
    
    • 1

    Information

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