7-3 sdut-C语言实验-活动选择问题
分数 20
全屏浏览
切换布局
作者 马新娟
单位 山东理工大学
SDUT大学生活动中心每天都有很多活动申请举办,但是每个活动都有举办的时间要求,有些活动具有时间的冲突。为了举办更多的活动,必须要放弃一些活动,求出每天最多能举办多少活动。
###输入格式:
输入第一行为申请的活动数n(n<100),从第2行到n+1行,每行两个数,是每个活动的开始时间b,结束时间e;
###输出格式:
输出每天最多能举办的活动数。
###输入样例:
1. 12 2. 15 20 3. 15 19 4. 8 18 5. 10 15 6. 4 14 7. 6 12 8. 5 10 9. 2 9 10. 3 8 11. 0 7 12. 3 4 13. 1 3
输出样例:
5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h> #include <stdlib.h> #include<string.h> struct node { int begin,end; }a[101],t; int main() { int n,i,j; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %d",&a[i].begin,&a[i].end); } for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j].end>a[j+1].end) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } int p=1; int now=a[0].end; for(i=0;i<n;i++) { if(a[i].begin>=now) { p++; now=a[i].end; } }//max printf("%d\n",p); return 0; }