Reconstruction des trajets à partir des journaux de capteurs
Kotlin
Hard
data classes
Tâche «Reconstruction des trajets à partir des journaux de capteurs»
Il existe des journaux de capteurs de trajets passagers : chaque événement est un enregistrement d'entrée/sortie d'un passager avec indication du timestamp et de l'ID du trajet. Il est nécessaire de reconstruire les données de chaque trajet : ID du trajet, nombre de passagers (nombre maximal de personnes présentes simultanément dans le transport), nombre total de passagers ayant effectué le trajet, et durée du trajet (différence entre le dernier et le premier événement). Si un trajet manque d'événements (par exemple, seulement une entrée ou seulement une sortie), ce trajet est considéré comme incorrect et ignoré. Tous les temps sont donnés en secondes depuis le début de la journée. Afficher la liste des trajets dans l'ordre croissant des ID.
Format d\ entrée
Première ligne contient un entier N (1 ≤ N ≤ 10^5) — nombre d'événements. Ensuite, N lignes : chaque événement au format <ID_trajet> <type_événement> <temps>. Le type d'événement est 'IN' (entrée) ou 'OUT' (sortie). L'ID du trajet est un entier de 1 à 10^9. Le temps est un entier de 0 à 86400.
Format de sortie
Pour chaque trajet correct, afficher une ligne : ID_trajet nombre_passagers_max nombre_total_passagers durée_en_secondes. S'il n'y a aucun trajet correct, afficher 'NO TRIPS'.
Exemples
Exemple 1
ENTRÉE
6
1 IN 100
1 IN 150
1 OUT 200
2 IN 10
2 OUT 20
3 OUT 5
SORTIE
1 2 2 100
2 1 1 10
Exemple 2
ENTRÉE
4
1 IN 0
1 OUT 10
2 IN 5
2 OUT 15
SORTIE
1 1 1 10
2 1 1 10
Exemple 3
ENTRÉE
10
SORTIE
NO TRIPS
main.kt