本题注意点
1.书可以多次被借。当一本书被借走了,还没有归还时,该书可以再次被借,借书的时间要更新。(这个点有点坑)
2.书不能多次归还,如果多次归还,只会使用第一次的归还时间
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int dex,h,m;char a;
int sum=0;int cnt=0;
int tim[1000][2]={0};
for(int i=1;;i++)
{
scanf("%d %c %d:%d",&dex,&a,&h,&m);
if(dex==0)break;//当书名为0,就退出循环,该天工作结束
if(a=='S')//可以多次借书
{
tim[dex][0]=1;//标记变为已借
tim[dex][1]=h*60+m;
}
else if(a=='E'&&tim[dex][0]==1)//只使用第一次还书时间
{
tim[dex][0]=0;//标记变为未借
cnt++;sum=sum+(h*60)+m-tim[dex][1];
}
}
if(cnt!=0)sum=sum*1.0/cnt+0.5;//小心除零错误,同时注意四舍五入
printf("%d %d\n",cnt,sum);
}
return 0;
}