打卡记录统计
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
打卡记录统计
题目描述
校园吉祥物 噜噜 给教室装了一套打卡系统,用来记录学生进出教室的情况。每当学生刷卡离开或返回时,闸机会自动生成一条记录,包含以下信息:
- 学号:的正整数
- 记录类型:
S
—— 开始离开教室(Start
)E
—— 返回教室(End
)- 时间戳:
hh:mm
( 小时制)
-
当记录中的 学号为 时,表示 当天所有记录结束,紧接着的记录属于下一天。
-
当出现 单独一行
-1
时,表示 所有天的记录结束,输入到此为止。
- 若某位学生当天存在
E
但没有对应S
(或反之),则该生当条记录视为无效,不计入统计。 - 若某位学生在E之前有多条S,只取最早的那一条S,其余的忽略;
- 若某位学生在E之后还有多条E,同样只取最早的那条E,其余的忽略;
同一个学生一天可能出现出去多次的情况;
现在噜噜要求你对于每天的打卡记录,统计并输出每天所有学生外出的总次数和平均每次离开的时长(分钟,四舍五入取整)
输入格式
若干天的数据按顺序给出,直到文件结束。 一行一条记录,格式如下:
id type hh:mm
id
:学生学号,;type
:字符S
或E
;hh:mm
:离开/返回时间。
说明:
- 记录中的 学号为 时,表示 当天所有记录结束,紧接着的记录属于下一天
- 当读到一行仅含
-1
时,表示全部记录结束。
同一天内记录按时间先后给出(时间戳非递减)。
输出格式
若干行,每一行为每一天,输出每天所有学生外出的总次数和平均每次离开的时长(分钟,四舍五入取整)
1 S 08:10
2 S 08:35
1 E 10:00
2 E 13:16
0 S 17:00
0 S 17:00
3 E 08:10
1 S 08:20
2 S 09:00
1 E 09:20
0 E 17:00
-1
2 196
0 0
1 60
样例解释:
第 1 天
1 S 08:10 // 学号 1 离开
2 S 08:35 // 学号 2 离开
1 E 10:00 // 学号 1 返回
2 E 13:16 // 学号 2 返回
0 S 17:00 // 0 ⇒ 第一天结束
学号 | 配对次数 | 时长(分钟) | 说明 |
---|---|---|---|
1 | 1 | 110 | 08:10 → 10:00 |
2 | 281 | 08:35 → 13:16 |
当天所有学生平均离开时长:
输出行:2 196
2
为当天有效打卡的次数,196
为平均离开时长。
第 2 天
0 S 17:00 // 0 ⇒ 第二天结束
没有任何合法学号(1~100)的完整 S-E
配对,
因此 有效次数 = 0,平均时长记为 0
。
输出行:0 0
第 3 天
3 E 08:10 // 学号 3 先出现 E(没有配对 S),该条无效
1 S 08:20 // 学号 1 离开
2 S 09:00 // 学号 2 离开
1 E 09:20 // 学号 1 返回(成功配对)
0 E 17:00 // 0 ⇒ 第三天结束
-1 // 全部结束
学号 | 配对次数 | 时长(分钟) |
---|---|---|
1 | 60 | |
2 | 0 | — |
3 |
有效打卡次数:仅学号 平均离开时长:
输出行:1 60
数据范围
- 总记录条数 ≤
1 ≤ id ≤ 100
- 时间戳
00:00
~23:59