- 题目链接:L1-043 阅览室
- 考查知识:模拟
- 题意描述:
- 给出n天的记录,每条记录是一个(书号,借还书,借还书时间)的这样一个三元组。
- 当书号为0时标记一天的结束
- 对每天的纪录,输出当天的读者借书次数和平均阅读时间
- 思路简析:
- 注意书号为0,即一天结束时,借还书操作无效,根据题意模拟即可
- 以分钟为单位的精确到个位的整数时间,用
fixed<<setprecision(0)
四舍五入即可
- 具体代码
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e3+10; int borrow[N],start[N];//标记借书,开始借书时间 int main(){ int n,id,h,m,day=0,sum=0,cn=0; char t,g; cin>>n; while(day<n){//n天 cin>>id>>t>>h>>g>>m; if(!id){//一天结束 if(!cn)cout<<"0 0"<<endl; else cout<<cn<<" "<<fixed<<setprecision(0)<<1.0*sum/cn<<endl; day++;cn=sum=0; }else{ if(t=='S'){//借书 borrow[id]=1; start[id]=h*60+m; }else if(borrow[id]&&t=='E'){//还书 borrow[id]=0; sum+=h*60+m-start[id]; cn++; } } } return 0; }
L1-043 阅览室(模拟)
于 2022-04-07 22:17:29 首次发布