题目链接:http://poj.org/problem?id=1065
//C++代码
#include<iostream>
#include<algorithm>
using namespace std;
struct Stick{
int l,w;
bool flag;
bool operator <(const Stick a) const{
if(l==a.l) return w<a.w;
return l<a.l;
}
}a[5005];
int main(){
int t,n,i;
cin>>t;
while(t--){
cin>>n;
for(i=0;i<n;i++){
cin>>a[i].l>>a[i].w;
a[i].flag=true;
}
sort(a,a+n);
int num=0,ans=0;
while(num<n){
int max=0;
for(i=0;i<n;i++){
if(a[i].flag){
if(a[i].w>=max){
max=a[i].w;
a[i].flag=false;
num++;
}
}
}
ans++;
}
cout<<ans<<endl;
}
return 0;
}