南陽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;
}