小猿的冠军班级
发布于 2022-03-03 17:07:11
猿辅导课程中需要记录各个班的同学们的出勤情况并进行班级排名,授予冠军班级的奖励。
但是今天粗心的小猿出公司门的时候摔了一跤,把榜单给弄丢了,幸好考勤记录还没丢,但是顺序被弄乱了,现在他把考勤记录和班级名册整理了一下,请你写个程序,帮他把班级排名恢复吧!
排名规则是各班的出勤率,即老师在教室时同学们在教室听讲的比例,具体为:班级同学有效出勤分钟数之和/(老师在教室时间*班级人数),出勤率相同的班级,按班级名称的字典序进行排序。
其中,有效出勤分钟数表示该同学与老师同在教室内的时间和,即各个区间的结束时间(分)与开始时间(分)之差的和。
输入描述:
第一行为两个数字N,M,以空格分隔,分别表示总考勤记录数和班级个数。接下来M行,每行表示一个班级的情况,其中第i+1行数据为:
数字Ki表示该班级人数,数字ti表示该班老师的用户id,namei表示班级的名称,接下来Ki个数字表示该班的同学的用户id。
例如:3 999 yuanxiaoyiban 0001 0002 0004
表示yuanxiaoyiban班的老师id为999,3位同学的用户id分别为0001,0002,0004
接下来N行表示乱序的考勤记录,每一行表示一条记录,记录由命令cmdj表示进出教室情况,有IN和OUT两种,数字idj表示进出教室的用户id,timej表示该记录发生的时间距2000年1月1日的分钟数。
例如:IN 999 1表示id为999的用户在2000年1月1日00:01进入了教室。
数据保证,
所有人开始和结束记录时都不在教室内;
每个班级的老师在教室时间和班级人数不为0;同一个用户在同一分钟可以进出教室各一次;班级名称各不相同。
输入样例:
12 2
3 999 yuanxiaoyiban 0001 0002 0004
2 9988 yuanxiaoerban 0003 0009
IN 0001 9001
OUT 0001 9006
IN 999 8888
OUT 999 8888
IN 999 9003
OUT 999 9004
IN 9988 9005
OUT 9988 9006
IN 0003 9001
OUT 0003 9002
IN 0003 9005
OUT 0003 9006 输出描述:
共M行,第i行为排名为i的班级的名称。输出样例
yuanxiaoerban
yuanxiaoyiban关注者
0
被浏览
42