输入
第一行是一个整型数m(m<100)表示共有m组测试数据。
每组测试数据的第一行是一个整数n(1
随后的n行,每行有两个正整数Bi,Ei(0<=Bi,Ei<10000),分别表示第i个活动的起始与结束时间(Bi<=Ei)
输出
对于每一组输入,输出最多能够安排的活动数量。
每组的输出占一行
// 1. 如何利用 qsort 对二维数组排序
// 2. 剩下的时间段越长,越可能会有更多的会场安排
样例输入
2
2
1 10
10 11
3
1 10
10 11
11 20
样例输出
1
2
#include
#include
#include
#define MAX_LEN 10001
int cmp(const void *a,const void *b);
int main()
{
int m = 0;
scanf("%d",&m);
while (m--)
{
int i = 0;
int n = 0;
int tmp = -1;
int result = 0;
int time[MAX_LEN][2];
scanf("%d",&n);
memset(time,0,sizeof(time));
for (i = 0; i < n; i++)
{
scanf("%d%d",&time[i][0],&time[i][1]);
}
qsort(time,n,sizeof(time[0]),cmp);
for (i = 0; i < n; i++)
{
if (tmp < time[i][0])
{
result++;
tmp = time[i][1];
}
}
printf("%d\n",result);
}
return 0;
}
int cmp(const void *a,const void *b)
{
if (*((int *)a+1) == *((int *)b+1))
return (*((int *)a) == *((int *)b));
else
return (*((int *)a+1) - *((int *)b+1));
}