0
已解决
2838 活动安排 经验值:1200
题目描述 Description
在公司有一间会议室,时常被人拿出来安排活动。现在某一天里,公司有n个部门都想要使用这间会议室,并且都给出了自己的要使用的时间段。请问这间会议室最多能安排多少个活动?
输入描述 Input Description
第一行,一个整数,n(1≤n≤100)
接下来n行,第i行两个整数,sti edi,表示第i个活动开始于sti,终止于edi(sti<edi)
输出描述 Output Description
第一行是安排的第一个活动的开始时间和结束时间
第二行是最多能安排的活动数目
样例输入 Sample Input
3 1 2 1 3 2 4
样例输出 Sample Output
1 2 2
数据范围及提示 Data Size & Hint
如果第一个活动有多种安排方案,选择结束时间最早的那一个,结束时间相同的情况下选开始时间最早的
我的思路不太有问题,就是按照结束时间排序,然后判断输出,但是不知道哪里出了问题,请大佬帮忙看看
(这只是道贪心呀!!!我都没做对!!!)
王子健在2020-07-15 10:32:15追加了内容
错误代码如下
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct f{
int sti, edi;
}a[150];
bool cmp(f x, f y) {
return x.edi < y.edi;
}
int main() {
int n;
cin >> n;
for (int i=1; i<=n; i++) {
cin >> a[i].sti >> a[i].edi;
}
sort(a+1, a+1+n, cmp);
int end = 0, cnt = 0;
for (int i=1; i<=n; i++) {
if (a[i].sti <= end) {
cnt ++;
end = a[i].edi;
}
}
cout << a[1].sti << ' ' << a[1].edi << endl;
cout << cnt ;
return 0;
}
0
0
0
@王子健
数据范围及提示 Data Size & Hint
如果第一个活动有多种安排方案,选择结束时间最早的那一个,结束时间相同的情况下选开始时间最早的
下次一定要读题读完整!cmp改一下!
0
0
0
