基于传感器日志的行程重建

Kotlin Hard data classes

任务 «基于传感器日志的行程重建»

存在乘客行程的传感器日志:每个事件是一条乘客上车/下车的记录,包含时间戳和行程ID。需要恢复每次行程的数据:行程ID、乘客数量(交通工具内同时容纳的最大人数)、完成行程的乘客总数以及行程持续时间(最后一个事件与第一个事件的时间差)。如果行程缺少事件(例如只有上车或只有下车),则该行程被视为无效并被忽略。所有时间以从当天开始计算的秒数为单位。按ID升序输出行程列表。

输入格式

第一行为整数N (1 ≤ N ≤ 10^5) —— 事件数量。接下来N行:每个事件的格式为 <行程ID> <事件类型> <时间>。事件类型为'IN'(上车)或'OUT'(下车)。行程ID为从1到10^9的整数。时间为从0到86400的整数。

输出格式

对于每个有效行程,输出一行:行程ID 最大乘客数 乘客总数 持续时间(秒)。如果没有有效行程,则输出'NO TRIPS'。

示例

示例 1

输入
6 1 IN 100 1 IN 150 1 OUT 200 2 IN 10 2 OUT 20 3 OUT 5
输出
1 2 2 100 2 1 1 10

示例 2

输入
4 1 IN 0 1 OUT 10 2 IN 5 2 OUT 15
输出
1 1 1 10 2 1 1 10

示例 3

输入
10
输出
NO TRIPS
main.kt