贪心法 2073--> 活动选择问题 SDUT

来源:互联网 发布:联通有什么软件 编辑:程序博客网 时间:2024/06/08 00:50
Problem Description sdut 大学生艺术中心每天都有n个活动申请举办,但是为了举办更多的活动,必须要放弃一些活动,求出每天最多能举办多少活动。Input 输入包括多组输入,每组输入第一行为申请的活动数n(n<100),从第2行到n+1行,每行两个数,是每个活动的开始时间b,结束时间e;Output 输出每天最多能举办的活动数。Example Input1215 2015 198 1810 154 146 125 102 93 80 73 41
#include<stdio.h>
struct node{    int b, e;}st[105], t;int main(){    int n, i, sum, j, k;    while(~scanf("%d", &n))    {        sum = 0;        for(i=0; i<n; i++)        {            scanf("%d%d", &st[i].b, &st[i].e);        }        for(i=0;i<n-1; i++)        {            for(j=0; j<n-1-i; j++)            {                if(st[j].e>st[j+1].e)                {                    t = st[j], st[j] = st[j+1], st[j+1] = t;                }            }        }        k = 0;        for(i=0; i<n; i++)        {            if(st[i].b>=k)            {                sum++;                k = st[i].e;            }        }        printf("%d\n", sum);    }    return 0;}
1 0