hdu 2037 今年暑假不AC

将其按结束时间进行升序,如果下一个开始时间大于等于前一个结束时间,则进行统计。

AC 代码:

#include<stdio.h>
#include<stdlib.h>
typedef struct
{
    int ts,te;
} time;
int cmp(const void *a,const void *b)
{
    time *a1=(time *)a;
    time *b1=(time *)b;
    return a1->te - b1->te;
}

int main(void)
{
    int n,i,sum;
    time tarr[105],tem;
    while(scanf("%d",&n)!=EOF,n)
    {
        sum = 1;
        for(i=0; i<n; i++)
        {
            scanf("%d%d",&tarr[i].ts,&tarr[i].te);
        }
        qsort(tarr,n,sizeof(tarr[0]),cmp);
        tem.ts=tarr[0].ts;
        tem.te=tarr[0].te;
        for(i=1; i<n; i++)
        {
            if(tarr[i].te>tem.te&&tarr[i].ts>=tem.te)
            {
                sum++;
                tem=tarr[i];
            }
        }
        printf("%d\n",sum);
    }
    return 0;
}

  

 

posted @ 2016-07-27 16:20  马丁黄瓜啊  阅读(140)  评论(0编辑  收藏  举报