Доход парковки за смену

Просмотр в формате PDF

Submit solution


Очки: 160
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem types
Allowed languages
C++, Python

Автомат парковки ведёт журнал событий за смену и по нему рассчитывает доход.

Каждое событие — это либо въезд автомобиля на парковку, либо его выезд. Для каждого автомобиля известен его целочисленный номер. События даны в хронологическом порядке, моменты времени строго возрастают.

Оплата взимается по тарифу t рублей за каждый начатый час стоянки. Длительность каждой парковочной сессии округляется вверх до целого числа часов. Например, 1 минута считается как 1 час, 60 минут — тоже как 1 час, а 61 минута — как 2 часа.

Гарантируется, что:

  • к началу смены парковка пуста;
  • для каждого автомобиля каждый въезд имеет ровно один соответствующий выезд;
  • между въездом и выездом одного автомобиля не бывает других событий этого же автомобиля;
  • к концу смены все въехавшие автомобили уже выехали.

Время задаётся в формате HH:MM и всегда находится в пределах одних суток: от 00:00 до 23:59.

Требуется определить общий доход парковки за смену, а также суммарную стоимость всех сессий для каждого автомобиля.

Входные данные

В первой строке даны два целых числа n и t — количество событий и тариф в рублях за начатый час.

В следующих n строках записано по одному событию в формате time type plate, где:

  • time — момент времени в формате HH:MM;
  • typeIN, если автомобиль въезжает, или OUT, если выезжает;
  • plate — целое число, номер автомобиля.

Выходные данные

В первой строке выведите общий доход парковки за смену.

В следующих строках выведите для каждого автомобиля его суммарную стоимость за все парковочные сессии. Автомобили должны быть выведены в порядке возрастания номера.

Формат каждой строки: plate cost.

Выводите только те автомобили, которые хотя бы один раз въезжали на парковку.

Ограничения

  • 1 <= n <= 10^5
  • 1 <= t <= 1000
  • 1 <= plate <= 10^9
  • моменты времени во входных данных строго возрастают
  • для каждого события OUT существует соответствующее предыдущее событие IN с тем же plate
  • все события относятся к одним суткам
  • ввод осуществляется через стандартный ввод
  • вывод осуществляется через стандартный вывод

Примеры

Пример 1

Входные данные

2 1
00:00 IN 1
00:01 OUT 1

Выходные данные

1
1 1
Пример 2

Входные данные

6 10
00:00 IN 5
00:30 OUT 5
01:00 IN 3
02:00 OUT 3
02:01 IN 5
02:02 OUT 5

Выходные данные

30
3 10
5 20

Комментарии

Еще нет ни одного комментария.