南陽14会場の手配問題

787 ワード

分析:
先に終了時間順に並べ替えて、終了時間が早ければ早いほど、アクティビティの手配が多くなり、開始時間を前の終了時間と比較します.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct In{
 int x;
 int y;
};
In pos[10010];
int cmp(const void *a,const void *b)
{
 In *c=(In *)a;
 In *d=(In *)b;
 if(c->y!=d->y) return c->y-d->y;
 else return d->x-c->x;//       ,            ,    or       
}
int main()
{
 int n,m,i,t,j;
 scanf("%d",&n);
 while(n--)
 {
  memset(pos,0,sizeof(pos));
  scanf("%d",&m);
  for(i=0;i<m;i++)
  scanf("%d%d",&pos[i].x,&pos[i].y);
  qsort(pos,m,sizeof(pos[0]),cmp);
  j=pos[0].y;
  for(t=i=0;i<m;i++)
  if(pos[i].x>j) 
  {t++;j=pos[i].y;}
  printf("%d
",t+1); } return 0; }