/*思路:
看到此题第一反应是将开始时间进行排序
但是这样会比较麻烦
做题应该多换几个角度和思维
将此题按结束时间进行排序
会简单得多*/
#include<stdio.h>
#include<stdlib.h>//qsort排序必加头文件
struct move
{
int tis;
int tie;//成员
}num[110];//只用一个数组就好,因为一个数组里面包含多个成员
int cmp(const void *a,const void *b)
{
return (*(move *)a).tie-(*(move *)b).tie;
//因为是对结构体成员tie进行排序,而tie又是int型,故采用int型快排模式
//要根据排序成员的类型决定return后面的格式
}
//以上是结构体一级排序
int main()
{
int n;
int nt,i,j;
int sum;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d%d",&num[i].tis,&num[i].tie);
qsort(num,n,sizeof(num[0]),cmp);
sum=1;
nt=num[0].tie;
for(i=1;i<n;i++)
{
if(num[i].tis>=nt&&num[i].tie>nt)
{
sum++;
nt=num[i].tie;
}
}
printf("%d\n",sum);
}
return 0;
}
1407291508-hd-今年暑假不AC.cpp
时间: 2024-10-14 11:02:05