0292. Турникет

Input file name: pass.in
Output file name: pass.out
Time limit: 2 s
Memory limit: 256 megabytes

В одном IT-Парке государственного университета города P поставили турникет для учета входящих и выходящих сотрудников. Каждый работник имеет ключ-карту с уникальным пятизначным номером, приложив которую к турникету можно пройти через него в обе стороны. При прикладывании ключ-карты, турникет сохраняет информацию о времени, номере ключ-карты и действии (вход или выход сотрудника).

Вахтеру было поручено вести ежедневный учет пребывания сотрудников на территории IT-Парка. Так как в IT-Парке работают только программисты (стало быть и вахтер тоже программист), то вахтер решил написать простенькую программу, которая по данным с турникета за день, выводила бы для каждого сотрудника, время его пребывания в стенах IT-Парка на момент наступления полуночи.

Стоит отметить, что программисты, по большей части, народ ленивый, и иногда они могут забывать уходить на ночь домой с работы, или наоборот, могут рано утром, проработав всю ночь, уйти домой.

Вахтер успешно написал программу, однако, как любой уважающий себя программист, он решил проверить правильность ее работы. Ваша задача – написать программу, которая по входных данным рассчитывает время пребывания в стенах IT-Парка каждого упомянутого в этих данных сотрудника, и помочь вахтеру проверить его навыки программирования.

Формат входного файла

В первой строке входного файла находится одно целое число n (0 ≤ n ≤ 86400) – количество записей турникета за день. В последующих n строках находится отсортированная по возрастанию времени информация о действиях ключ-карт. В каждой строке сначала записано время в формате HH:MM:SS (00 ≤ HH ≤ 23, 00 ≤ MM, SS ≤ 59), где HH , MM, SS – часы, минуты и секунды, с ведущими нулями, соответственно. Все времена различны. Далее, через пробел записано целое число – пятизначный номер ключ-карты сотрудника (номер никогда не начинается с нуля). Завершает строку записанное через пробел целое число t. Если t = 0, то это означает, что сотрудник вышел из здания, если t = 1 – вошел. Никакой сотрудник не может войти или выйти более одного раза подряд. Секунда, в которую выходит сотрудник, засчитывается, как пребывание в стенах IT-Парка.

Формат выходного файла

В первой строке выходного файла выведите число m – количество различных сотрудников, прошедших в течение дня через турникет. Далее в m строках выведите информацию по каждому сотруднику – номер ключ-карты сотрудника и через пробел его время пребывания в IT-Парке, считая от полуночи (00:00:00) и до полуночи (23:59:59) включительно, в формате HH:MM:SS (00 ≤ HH ≤ 24, 00 ≤ MM, SS ≤ 59). Номера ключ-карт сотрудников выведите в возрастающем порядке.

Пример:

pass.inpass.out
4 12:32:44 10001 1 17:13:32 10004 0 17:31:36 10003 1 18:28:32 10001 0 3 10001 05:55:49 10003 06:28:24 10004 17:13:33
7 08:14:08 10003 1 10:31:36 10005 1 11:33:42 10000 1 14:31:28 10001 1 18:26:56 10003 0 19:07:59 10008 1 20:20:53 10002 1 6 10000 12:26:18 10001 09:28:32 10002 03:39:07 10003 10:12:49 10005 13:28:24 10008 04:52:01
8 01:42:52 12345 1 03:19:56 12345 0 05:42:32 42042 1 07:31:34 42042 0 13:56:05 12345 1 14:49:40 42042 1 19:50:05 12345 0 20:21:27 42042 0 2 12345 07:31:06 42042 07:20:51
2 12:00:01 12345 0 12:00:02 12345 1 1 12345 24:00:00


Source: Первенство ПетрГУ. Сентябрь 2012.

Discuss       Submit a solution



Printable version