Reconstrução de viagens com base em logs de sensores
Kotlin
Hard
data classes
Tarefa «Reconstrução de viagens com base em logs de sensores»
Existem logs de sensores de viagens de passageiros: cada evento é um registro de entrada/saída de passageiro com indicação de horário (timestamp) e ID da viagem. É necessário reconstruir os dados de cada viagem: ID da viagem, número de passageiros (máximo simultâneo no transporte), quantidade total de passageiros que realizaram a viagem e duração da viagem (diferença entre o último e o primeiro evento). Se para uma viagem faltarem eventos (por exemplo, apenas entrada ou apenas saída), essa viagem é considerada inválida e ignorada. Todos os horários são dados em segundos desde o início do dia. Exibir a lista de viagens em ordem crescente de ID.
Formato de Entrada
Na primeira linha, um número inteiro N (1 ≤ N ≤ 10^5) — quantidade de eventos. Nas próximas N linhas: cada evento no formato <ID_viagem> <tipo_evento> <horário>. O tipo de evento é 'IN' (entrada) ou 'OUT' (saída). O ID da viagem é um número inteiro de 1 a 10^9. O horário é um número inteiro de 0 a 86400.
Formato de Saída
Para cada viagem válida, imprimir uma linha: ID_viagem maximo_passageiros total_passageiros duracao_em_segundos. Se não houver viagens válidas, imprimir 'NO TRIPS'.
Exemplos
Exemplo 1
ENTRADA
6
1 IN 100
1 IN 150
1 OUT 200
2 IN 10
2 OUT 20
3 OUT 5
SAÍDA
1 2 2 100
2 1 1 10
Exemplo 2
ENTRADA
4
1 IN 0
1 OUT 10
2 IN 5
2 OUT 15
SAÍDA
1 1 1 10
2 1 1 10
Exemplo 3
ENTRADA
10
SAÍDA
NO TRIPS
main.kt