题目链接
题目描述
要求计算银行账单。
输入
第一行给你一天24小时(00:00~01:00 ...)每个小时每分钟的话费,单位是美分
第二行给你顾客列表(N 个)
接下来的 N 行是顾客的账单详情
CYLL 01:01:06:01 on-line
姓名 月:日:小时:分钟 状态
CYLL 01:28:16:05 off-line
姓名 月:日:小时:分钟 状态
on-line 和 off-line 必须一一对应该记录才有效
输出
对于输入有效的顾客,给出该顾客这个月的账单,格式如下
CYJJ 01
姓名 月份
01:05:59 01:07:00 61 $12.10
通话开始时间 通话结束时间 话费
Total amount: $12.10
这个月的总额话费
注意:
每次的输入,顾客的月份都是一样的。
测试用例中会出现跨天的情况。
分析
看到这道题目之后,我考虑过单纯的使用 map 或者结构体存储数据,最后确定用 map,也就是map + vector + 结构体 的方式存储。尽管成功的存储了,但是到了处理数据这里,对于姓名排序以及时间排序的处理让我着实头痛。无奈就去参考了网上的代码。参考网址
不得不说柳神真的是名不虚传。不仅用总计日时分的时间解决了时间上的排序问题,而且用总计日时分的话费解决了跨天的话费计算问题,这两个方法都有共性吧。。。学习到了!我参考(抄袭←_←)柳神的代码后,将其思路列在代码注释里面了
实现
#include
#include
#include
希望能帮到大家