5
社区成员
发帖
与我相关
我的任务
分享
![]()


#include<stdio.h>
#include<algorithm>
const int N=10010;//数组最大长度
struct Meet{
int beg;
int end;
}meet[N];
bool comp(Meet a,Meet b){
if(a.end==b.end){
return a.beg>b.beg;
}
return a.end<b.end;
}
int main()
{
int n=0;
printf("输入会议个数:");
scanf("%d",&n);
printf("输入会议开始时间与结束时间,中间用空格隔开\n");
for(int i=0;i<n;i++){
scanf("%d%d",&meet[i].beg,&meet[i].end);
}
//排序
std::sort(meet,meet+n,comp);
//贪心
int ans=1;
int last=meet[0].end;
for(int i=1;i<n;i++){
if(last<=meet[i].beg){
ans++;
last=meet[i].end;
}
}
printf("最多可安排的会议个数是:%d",ans);
return 0;
}
样例输出:
