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> struct node { int begin, end; } q[105], t; int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d %d", &q[i].begin, &q[i].end); for (int i = 0; i < n - 1; i++) for (int j = 0; j < n - 1 - i; j++) { if (q[j].end > q[j + 1].end) { t = q[j]; q[j] = q[j + 1]; q[j + 1] = t; } } int ans = 0, pos = 0; for (int i = 0; i < n; i++) { if (q[i].begin >= pos) { ans++; pos = q[i].end; } } printf("%d\n", ans);//max return 0; }