需要注意的地方:
如果用python来写这道题,最好自己写个四舍五入的函数,否则用round等函数没有四舍五入的效果,找到其他的方法也比较麻烦,还不如自己写一个
同一本书的借书起始时间按同一天最后一位借这本书的人的借书时间来算 (测试点一坑)
同一本书的还书时间按照同一天第一位还这本书的人的还书时间来算(测试点一坑)
代码如下:
import sys
def toMin(x): #时间转换函数
hour_0 = int(x[0:2])
min_0 = int(x[3:5])
out_min = hour_0*60+min_0
return out_min
def rounding(x): #四舍五入函数
x = str(x)
decimal = int(x[x.index('.')+1])
if decimal >= 5:
return int(x[0:x.index('.')])+1
else :
return int(x[0:x.index('.')])
in_1 = int(sys.stdin.readline()) #标准输入一行
sum_0,sum_num,sum_min,dict_1 = 0,0,0,{}
while True:
in_2,in_3,in_4 = sys.stdin.readline().split() #标准输入一行并切分
if in_2 == '0':
try : #统计一天时间的借书结果
print("{} {}".format(sum_num,rounding(sum_min/sum_num)))
except :
print("0 0")
sum_0 += 1
dict_1 = {}
sum_num = 0
sum_min = 0
else :
if in_2 in dict_1:
if dict_1[in_2][0] == 'S' and in_3 == 'E': #存入还书记录
sum_min = sum_min + (toMin(in_4)-toMin(dict_1[in_2][1]))
dict_1.pop(in_2)
sum_num += 1
else : #存入借书记录
dict_1[in_2] = [in_3,in_4]
else : #存入借书记录
dict_1[in_2] = [in_3,in_4]
if sum_0 == in_1:
break