Reconstrucción de viajes basada en registros de sensores
Kotlin
Hard
data classes
Tarea «Reconstrucción de viajes basada en registros de sensores»
Existen registros de sensores de viajes de pasajeros: cada evento es un registro de entrada/salida de un pasajero con indicación de la hora (timestamp) y el ID del viaje. Se requiere reconstruir los datos de cada viaje: ID del viaje, cantidad de pasajeros (número máximo de personas presentes simultáneamente en el transporte), cantidad total de pasajeros que realizaron el viaje y duración del viaje (diferencia entre el último y el primer evento). Si para un viaje faltan eventos (por ejemplo, solo entrada o solo salida), dicho viaje se considera incorrecto y se ignora. Todos los tiempos están dados en segundos desde el inicio del día. Mostrar la lista de viajes en orden ascendente de ID.
Formato de entrada
En la primera línea, un número entero N (1 ≤ N ≤ 10^5) — la cantidad de eventos. Luego, en N líneas: cada evento en el formato <ID_viaje> <tipo_evento> <tiempo>. El tipo de evento es 'IN' (entrada) o 'OUT' (salida). El ID del viaje es un número entero de 1 a 10^9. El tiempo es un número entero de 0 a 86400.
Formato de salida
Para cada viaje correcto, mostrar una línea: ID_viaje cantidad_pasajeros_max cantidad_total_pasajeros duración_en_segundos. Si no hay viajes correctos, mostrar 'NO TRIPS'.
Ejemplos
Ejemplo 1
ENTRADA
6
1 IN 100
1 IN 150
1 OUT 200
2 IN 10
2 OUT 20
3 OUT 5
SALIDA
1 2 2 100
2 1 1 10
Ejemplo 2
ENTRADA
4
1 IN 0
1 OUT 10
2 IN 5
2 OUT 15
SALIDA
1 1 1 10
2 1 1 10
Ejemplo 3
ENTRADA
10
SALIDA
NO TRIPS
main.kt