题目链接:~( ̄▽ ̄~)(~ ̄▽ ̄)~
思路:按结束时间排序
code:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int x, y;
}node;
node num[102];
int cmp(const void *a, const void *b)
{
return (*(node *)a).y-(*(node *)b).y;
}
int main()
{
int i = 0, j = 0, n = 0, s = 0, e = 0, min = 0, k = 0, sum = 0;
while(scanf("%d",&n), n)
{
for(i = 0; i<n; i++)
scanf("%d %d",&num[i].x, &num[i].y);
qsort(num, n, sizeof(num[0]), cmp);
e = 0;
sum = 0;
for(i = 0; i<n; i++)
{
if(num[i].x>=e)//这个节目的开始时间大于等于上一个节目的结束时间
{
e = num[i].y;
sum++;
}
}
printf("%d\n",sum);
}
return 0;
}