#2426. 徐老师的一天
徐老师的一天
题目背景
徐老师是某野鸡机构的信息学教练,他每天的生活都被排得满满当当。他的任务包括:
- 上课
- 开会
- 批改作业
- 个别辅导学生
- 回家吃饭
但有些活动可能冲突重叠,徐老师必须根据优先级、疲劳度和偏好做出取舍。
任务描述
给定一天从 08:00
到 22:00
的时间段,每一个活动由如下信息描述:
- 活动编号
- 活动类型(上课 / 会议 / 批改 / 辅导 / 吃饭 / 其他)
- 起始时间(例如:
13:15
) - 结束时间(例如:
14:45
) - 活动重要性(1~5,数值越高越重要)
- 徐老师对该活动的喜爱程度(0~10)
- 是否可以被取消(yes/no)
你的任务是:
- 模拟这一天的时间轴;
- 处理所有活动的冲突,如果两个活动有重叠:
- 优先级更高的保留;
- 若优先级相同,则徐老师更喜欢的活动保留;
- 若仍相同且都不可取消,则输出“安排冲突”并结束;
- 若某活动可取消,取消之。
- 最终输出徐老师最终安排的时间表,并统计:
- 总工作时长(不包括吃饭);
- 他最喜欢的活动是什么(喜爱度最高的那个);
- 哪一段时间是最长的空闲时间段;
- 是否有安排连续超过 4 小时未休息(即无 15 分钟以上空档)。
输入格式
N
编号 活动类型 起始时间 结束时间 重要性 喜爱度 是否可取消
编号 活动类型 起始时间 结束时间 重要性 喜爱度 是否可取消
...
(共 N 行)
- 时间格式为
HH:MM
,24 小时制; - 活动类型为字符串,例如 "上课"、"会议";
- 是否可取消为
"yes"
或"no"
。
输出格式
- 输出按时间排序后的最终安排,每行如下格式:
[08:00 - 09:30]上课(重要性 5,喜爱度 7)
- 最后输出统计信息:
总工作时长:X 小时 Y 分钟
最喜欢的活动:上课(编号 3)
最长空闲时段:[HH:MM - HH:MM]
是否连续工作超过 4 小时无休息:是/否
样例输入
5
1 上课 08:30 10:00 5 8 no
2 会议 09:00 10:30 5 6 yes
3 辅导 11:00 13:00 3 9 no
4 吃饭 12:30 13:30 2 10 yes
5 批改 13:30 17:00 4 4 no
样例输出
[08:30 - 10:00]上课(重要性 5,喜爱度 8)
[11:00 - 13:00]辅导(重要性 3,喜爱度 9)
[13:30 - 17:00]批改(重要性 4,喜爱度 4)
总工作时长:7小时0分钟
最喜欢的活动:辅导(编号 3)
最长空闲时段:[17:00 - 22:00]
是否连续工作超过4小时无休息:否
提示
- 模拟时间可转为分钟数进行冲突处理;
- 必须定义结构体表示活动,支持按起始时间排序;
- 必须能处理边界情况,如活动跨越整天、全可取消、全部冲突等。