版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ccDLlyy/article/details/79943619
题目链接:点击打开链接
思路:利用STL map即可
#include <bits/stdc++.h>
using namespace std;
map<int,char> m1;
map<int,int> m2;
int main(){
int n;
int cnt = 0;
double sum = 0;
int num;
char op;
int h,m;
cin >> n;
for(int i = 0;i < n;i++){
m1.clear();
m2.clear();
cnt = 0;
sum = 0.0;
while(scanf("%d",&num) != EOF){
getchar();
op = getchar();
scanf("%d:%d",&h,&m);
if(num == 0) break;
if(op == 'S'){
m1[num] = op;
m2[num] = h * 60 + m;
}
else if(op == 'E'){
if(m1.find(num) != m1.end() && m1[num] == 'S'){
cnt++;
sum += h*60 + m - m2[num];
m1[num] = '0';
}
}
}
if(cnt == 0){
printf("0 0\n");
}
else{
printf("%d %d\n",cnt,(int)(sum / cnt + 0.5));
}
}
return 0;
}