关闭

活动选择

635人阅读 评论(0) 收藏 举报
分类:

Problem Description

学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。现在给出n个活动使用礼堂的起始时间begini和结束时间endi(begini<endi),请你帮助办公室人员安排一些活动来使用礼堂,要求安排的活动尽量多。

Input

输入有多组数据,每组数据的第一行一个整数n(n<=1000);接下来的n行,每行两个整数,第一个begini,第二个是endi(begini<endi<=32767)

Output

对于每组数据输出最多能安排的活动个数。

Sample Input

11
3 5
1 4
12 14
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13

Sample Output

4
//简单贪心问题
//标程:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct ss
{
    int x,y;
}p[1010];
bool cmp(ss a,ss b)
{
    if(a.y!=b.y) return a.y<b.y;
    else if(a.x!=b.x) return a.x<b.x;
}
int main()
{
    //freopen("a.txt","r",stdin);
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i;
        for(i=0;i<n;i++)
            scanf("%d%d",&p[i].x,&p[i].y);
        sort(p,p+n,cmp);
        int a=p[0].y,cnt=1;
        for(i=1;i<n;i++)
           if(a<=p[i].x) 
           {
               cnt++;
               a=p[i].y;
           }
        printf("%d\n",cnt);
    }
    return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:113837次
    • 积分:3697
    • 等级:
    • 排名:第8765名
    • 原创:271篇
    • 转载:3篇
    • 译文:0篇
    • 评论:11条
    最新评论