function solution(fees, records) {
var answer = [];
var cars = {};
const timeTom = (time) => {
let [a, b] = time.split(":").map(Number);
return a * 60 + b;
}
for (let i = 0; i < records.length; i++) {
let[time, number, io] = records[i].split(" ");
time = timeTom(time);
if (cars[number]) {
cars[number].push(time);
}
else {
cars[number] = [time];
}
}
for (let c of Object.keys(cars)){
let temp = 0;
let ans = fees[1];
if (cars[c].length % 2 !== 0){
cars[c].push(timeTom("23:59"))
}
for (let i = 0; i < cars[c].length; i += 2) {
temp += cars[c][i+1] - cars[c][i];
}
let extime = temp - fees[0];
if (extime > 0) {
ans += Math.ceil(extime/fees[2]) * fees[3];
}
cars[c].push(ans);
}
c = Object.keys(cars).sort((a, b) => (a - b));
c.forEach((a) => answer.push(cars[a][cars[a].length-1]));
return answer;
}