#include <cstdio>
#include <string>
#include <iostream>
#include <algorithm>
#include <map>
#include <cstring>
using namespace std;
struct Car{
char name[9];
int hh, mm, ss;
bool status;
int sumss;
};
bool cmp(Car c1, Car c2){
if(strcmp(c1.name,c2.name) != 0) return strcmp(c1.name,c2.name) < 0;
if(c1.hh != c2.hh) return c1.hh < c2.hh;
if(c1.mm != c2.mm) return c1.mm < c2.mm;
return c1.ss < c2.ss;
}
bool cmp2(Car c1, Car c2){
if(c1.hh != c2.hh) return c1.hh < c2.hh;
if(c1.mm != c2.mm) return c1.mm < c2.mm;
if(c1.ss != c2.ss) return c1.ss < c2.ss;
return strcmp(c1.name,c2.name) < 0;
}
int timetoss(Car c1, Car c2){
return c2.sumss - c1.sumss;
}
int calsumss(Car c){
return c.ss + c.mm*60 + c.hh*3600;
}
void sstotime(int sum){
int hh = sum / 3600;
int mm = sum / 60 % 60;
int ss = sum % 60;
printf("%02d:%02d:%02d", hh, mm, ss);
}
int main(){
int n, k;
scanf("%d %d", &n, &k);
Car c[n];
char t[3];
for(int i=0; i<n; i++){
scanf("%s %d:%d:%d %s",&c[i].name, &c[i].hh, &c[i].mm, &c[i].ss, &t);
if(strcmp(t,"in")==0){
c[i].status = true;
}else{
c[i].status = false;
}
c[i].sumss = calsumss(c[i]);
}
sort(c, c+n, cmp);
map<string,int> m;
Car temp[n];
int num = 0;
int flag = 0;
char t_name[9] = "";
for(int i=0; i<n; i++){
if(c[i].status){
flag = 1;
strcpy(t_name,c[i].name);
}else{
if(flag && strcmp(c[i].name,t_name)==0){
temp[num] = c[i-1];
num++;
temp[num] = c[i];
num++;
m[t_name] += timetoss(c[i-1], c[i]);
}
flag = 0;
}
}
sort(temp, temp+num, cmp2);
int t_hh, t_mm, t_ss, t_sumss;
int carnum;
for(int i=0; i<k; i++){
scanf("%d:%d:%d", &t_hh, &t_mm, &t_ss);
t_sumss = t_hh*3600 + t_mm*60 + t_ss;
carnum = 0;
for(int j=0; j<num; j++){
if(temp[j].sumss > t_sumss) break;
if(temp[j].status){
carnum++;
}else{
carnum--;
}
}
printf("%d\n", carnum);
}
int max = 0;
for(map<string,int>::iterator it=m.begin(); it!=m.end(); it++){
if(it->second > max){
max = it->second;
}
}
for(map<string,int>::iterator it=m.begin(); it!=m.end(); it++){
if(it->second == max){
printf("%s ", it->first.c_str());
}
}
sstotime(max);
return 0;
}
PAT的题目是真的恶心啊,动不动就超时。
写完这题的感悟:以后再也不敢用cin和cout了。。。