首页 > 代码库 > 1407291508-hd-今年暑假不AC.cpp

1407291508-hd-今年暑假不AC.cpp

/*思路:
        看到此题第一反应是将开始时间进行排序
  但是这样会比较麻烦
  做题应该多换几个角度和思维
  将此题按结束时间进行排序
  会简单得多*/
#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;
}