题目链接

解题思路

这道题有问题,只要有E就记录,且借船时间按照上一次借的时间算,测试点有点***!

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,h,m; 
	char c; 
	int hsh[105];
	int cnt=0;
	double ans=0;
	memset(hsh,-1,sizeof(hsh));
	while(cin>>n){
		if(n==-1) break;
		scanf(" %c %d:%d",&c,&h,&m);
		if(n==0){
			if(cnt==0) printf("0 0\n");
			else printf("%d %d\n",cnt,int(ans*1.0/cnt+0.5));
			memset(hsh,-1,sizeof(hsh));
			cnt=0;
			ans=0;
		}
		else if(c=='S'){
			hsh[n]=h*60+m;
		}else if(c=='E' && hsh[n]!=-1){
			ans += h*60+m - hsh[n];
			cnt++;
		}
		
	}
	return 0;
}