http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=25
//贪心
#include<iostream>
#include
<algorithm>
using namespace std;
struct Node
{
    
int len;
    
int wei;
}
;
bool comp(Node a,Node b)
{
    
if(a.len!=b.len)
        
return a.len>b.len;
    
else
        
return a.wei>b.wei;
}

int main()
{
    
int n,t;
    cin
>>t;
    
while(t--)
    
{
        Node infor[
5001];
        
int i,j,t,hash[5001],max,minj;
        cin
>>n;
        
for(i=1;i<=n;i++)
            scanf(
"%d%d",&infor[i].len,&infor[i].wei);
        sort(infor
+1,infor+n+1,comp);
        hash[
0= infor[1].wei;
        t
=1;
        
for(i=2;i<=n;i++)
        
{
            max 
= 10001;
            
for(j=0;j<t;j++)
            
{
                
if(infor[i].wei<=hash[j] && hash[j]-infor[i].wei < max)
                
{
                    max 
= hash[j]-infor[i].wei;
                    minj 
= j;
                }

            }

            
if(max == 10001)
            
{
                hash[t
++]=infor[i].wei;
                
continue;
            }

            hash[minj] 
= infor[i].wei;
        }

        cout
<<t<<endl;
    }

    
return 0;
}