这是原题截图,来自pta
输入样例:
3
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
输出样例:
2 196
0 0
1 60
#include<iostream>
using namespace std;
int hh,mm,g,i=0,id[10][1001][2]={0};
int main(){
char ch;
int n,num=0,time=0; cin>>n;
while(i<n){
/*i用于确定输入量,表示当前输入的为第i+1天的信息,同时,当日期更新时id不做归零处理,而采用i++。*/
scanf("%d %c %d:%d",&g,&ch,&hh,&mm);
if(!g){
//g接收书号,为零的时候本天结束,日期更新
i++;
if(num) printf("%d %.0lf\n",num,(double)time/num);//%.xlf 四舍五入
else printf("0 0\n");
num=time=0;
continue;
}
if(ch=='S'){//借书
id[i][g][0]=1;//初始或在馆状态为0 ;借出状态为1
id[i][g][1]=hh*60+mm;//以分钟数储存借出时间
}
else if(ch=='E' && id[i][g][0]==1){//还书
id[i][g][0]==0;// 书籍归馆状态归0
time+=hh*60+mm-id[i][g][1];//计算时间
num++;
}
}
return 0;
}