#6810. 班级卫生评分系统
班级卫生评分系统
题目背景
新学期开始了,班主任李老师决定建立一个更加公平公正的班级卫生评分系统。班级共有 个卫生小组,每天会对每个小组的卫生情况进行打分。为了鼓励大家保持良好的卫生习惯,李老师制定了一系列评分规则和奖励机制。
题目描述
班级共有 个卫生小组,编号从 到 。初始时,每个小组的基础分为 分。接下来会进行 次操作,操作分为以下三种类型:
- 区间加分:给编号从 到 的所有小组,每个小组加 分。
- 区间扣分:给编号从 到 的所有小组,每个小组扣 分。注意:扣分后小组分数不能低于 分,如果扣分会导致分数低于 ,则该小组分数变为 。
- 查询统计:查询编号从 到 的所有小组中:
- 最高分是多少
- 最低分是多少
- 平均分是多少(保留两位小数)
- 分数大于等于 分的小组数量(优秀小组数)
请你帮助李老师实现这个评分系统,正确处理所有操作并输出查询结果。
输入格式
第一行包含两个正整数 和 ,分别表示卫生小组的数量和操作的次数。
接下来 行,每行描述一个操作:
- 如果是区间加分操作,格式为:
1 l r k - 如果是区间扣分操作,格式为:
2 l r k - 如果是查询统计操作,格式为:
3 l r
输出格式
对于每个查询统计操作,输出一行包含四个数,用空格隔开:
- 最高分
- 最低分
- 平均分(保留两位小数)
- 优秀小组数
样例输入 #1
5 6
1 2 4 5
2 1 3 10
3 1 5
1 1 5 8
2 3 5 15
3 2 4
样例输出 #1
105 90 97.00 4
103 88 96.33 2
样例解释 #1
初始分数:[100, 100, 100, 100, 100]
操作1:给2-4组各加5分 → [100, 105, 105, 105, 100]
操作2:给1-3组各扣10分 → [90, 95, 95, 105, 100]
操作3:查询1-5组
- 最高分:105
- 最低分:90
- 平均分:(90+95+95+105+100)/5 = 485/5 = 97.00
- 优秀小组数:5个(全部≥90)
操作4:给1-5组各加8分 → [98, 103, 103, 113, 108]
操作5:给3-5组各扣15分 → [98, 103, 88, 98, 93]
操作6:查询2-4组
- 最高分:103
- 最低分:88
- 平均分:(103+88+98)/3 = 289/3 ≈ 96.33
- 优秀小组数:2个(103和98≥90,88<90)
数据范围与提示
- 对于 的数据:
- 对于 的数据:
- 对于 的数据:,,