64,654
社区成员
发帖
与我相关
我的任务
分享
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
struct Stick{
int length;
int weight;
};
bool cmp(Stick a,Stick b){
if(a.length==b.length){
return a.weight<b.weight;
}
return a.length<b.length;
}
int main(){
Stick stick[5005];
int T;
int i,j;
int visited[5005];
scanf("%d",&T);
while(T--){
int n;
memset(visited,0,sizeof(visited));
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d%d",&stick[i].length,&stick[i].weight);
}
int count=0;
sort(stick,stick+n,cmp);
for(i=0;i<n;i++){
if(!visited[i]){
visited[i]=1;
count++;
int l=stick[i].length;
int w=stick[i].weight;
for(j=i+1;j<n;j++){
if(!visited[j] && stick[j].length>=l && stick[j].weight>=w){
visited[j]=1;
}
}
}
}
printf("%d\n",count);
}
return 0;
}