#2426. 徐老师的一天

徐老师的一天

题目背景

徐老师是某野鸡机构的信息学教练,他每天的生活都被排得满满当当。他的任务包括:

  • 上课
  • 开会
  • 批改作业
  • 个别辅导学生
  • 回家吃饭

但有些活动可能冲突重叠,徐老师必须根据优先级、疲劳度和偏好做出取舍。

任务描述

给定一天从 08:0022:00 的时间段,每一个活动由如下信息描述:

  • 活动编号
  • 活动类型(上课 / 会议 / 批改 / 辅导 / 吃饭 / 其他)
  • 起始时间(例如:13:15
  • 结束时间(例如:14:45
  • 活动重要性(1~5,数值越高越重要)
  • 徐老师对该活动的喜爱程度(0~10)
  • 是否可以被取消(yes/no)

你的任务是:

  1. 模拟这一天的时间轴
  2. 处理所有活动的冲突,如果两个活动有重叠:
    • 优先级更高的保留;
    • 若优先级相同,则徐老师更喜欢的活动保留;
    • 若仍相同且都不可取消,则输出“安排冲突”并结束;
    • 若某活动可取消,取消之。
  3. 最终输出徐老师最终安排的时间表,并统计:
    • 总工作时长(不包括吃饭);
    • 他最喜欢的活动是什么(喜爱度最高的那个);
    • 哪一段时间是最长的空闲时间段;
    • 是否有安排连续超过 4 小时未休息(即无 15 分钟以上空档)。

输入格式

N
编号 活动类型 起始时间 结束时间 重要性 喜爱度 是否可取消
编号 活动类型 起始时间 结束时间 重要性 喜爱度 是否可取消
...
(共 N 行)
  • 时间格式为HH:MM,24 小时制;
  • 活动类型为字符串,例如 "上课"、"会议";
  • 是否可取消为 "yes""no"

输出格式

  1. 输出按时间排序后的最终安排,每行如下格式:
[08:00 - 09:30]上课(重要性 5,喜爱度 7)
  1. 最后输出统计信息:
总工作时长: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小时无休息:否

提示

  • 模拟时间可转为分钟数进行冲突处理;
  • 必须定义结构体表示活动,支持按起始时间排序;
  • 必须能处理边界情况,如活动跨越整天、全可取消、全部冲突等。