本题考查模拟与哈希表,并在最后用排序输出。
每条记录给出存件时间、取件时间和房间号。存放时长 t= 取件时间 − 存件时间。按题意:
请开发一个快递驿站计费系统,根据给定的一组快递存取记录,系统计费每位业主要缴纳的总费用,并按总费用从高到低输出。
系统计费规则如下:
12 小时,从存件时间开始计时,总存放时间 ⩽12 小时不收费,存放时间 = 取件时间 − 存件时间;12 小时收取 1 元,不足 12 小时按 12 小时计算,比如存放了 25 个小时,超出免费时间 13 小时,需要收费 2 元;一组快递存取记录列表,其中一条存取记录对应一个数组,该数组包含 3 个非负整数字段:存件时间、取件时间和业主房间号;存取时间已简化处理采用整型数字,非 24 小时制格式;
一个二维数组/列表,表述一组收费记录,每一条收费记录对应一个数组,该数组包含 2 个整数字段:业主房间号和总费用;收费按总费用从高到低排序,总费用相同的,按房间号从小到大排序;
输入
[[100, 110, 1111], [200, 210, 2222], [150, 165, 3333], [180, 190, 1111]]
输出
[[3333,1],[1111,0],[2222,0]]
说明
3333 房间的业主的快递存件时间是 150,取件时间是 165,则总存放时间为 15 小时,超过免费时间 3 小时,需要收取 1 元;其余业主都在免费时间内,不需要收费,按房间号从小到大排序,因此 1111 号排在前面
输入
[[10, 30, 303], [25, 50, 303], [40, 70, 201], [60, 90, 201], [100, 130, 102], [150, 180, 102]]
输出
[[102,4],[201,4],[303,3]]
说明
102 有 2 单,存放时间都是 30 小时,超时 18 小时,每单 18/12 向上取整收取 2 元,总费用 4 元;201 业主的总费用也是 4 元,但是 102<201,所以 102 号排在前面
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.