您的位置:首页 > 其它

活动选择问题

2016-03-27 17:00 281 查看


活动选择问题



Time Limit: 1000MS Memory limit: 65536K


题目描述

sdut 大学生艺术中心每天都有n个活动申请举办,但是为了举办更多的活动,必须要放弃一些活动,求出每天最多能举办多少活动。


输入

输入包括多组输入,每组输入第一行为申请的活动数n(n<100),从第2行到n+1行,每行两个数,是每个活动的开始时间b,结束时间e;


输出

输出每天最多能举办的活动数。


示例输入

12
15 20
15 19
8 18
10 15
4 14
6 12
5 10
2 9
3 8
0 7
3 4
1 3



示例输出

5



提示

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node
{
int begin;
int end;
}a[150], b[150];
void sort(struct node a[], int n)
{
int i, j;
struct node temp;
for(i = 0;i < n-1;i++){
for(j = 0;j < n-1-i;j++){
if(a[j].end > a[j+1].end){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
int main()
{
int n;
while(~scanf("%d", &n)){
int i;
for(i =0 ;i < n;i++){
scanf("%d %d", &a[i].begin, &a[i].end);
}
sort(a,n);
int k = 0;
b[0] = a[0];
for(i = 1;i < n;i++){
if(a[i].begin >= b[k].end){
k++;
b[k] = a[i];
}
}
printf("%d\n", k+1);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: