Rekonstruktion von Fahrten basierend auf Sensorprotokollen
Kotlin
Hard
data classes
Aufgabe «Rekonstruktion von Fahrten basierend auf Sensorprotokollen»
Es liegen Sensorprotokolle von Passagierfahrten vor: Jedes Ereignis ist ein Eintrag über das Ein-/Aussteigen eines Passagiers mit Angabe des Zeitstempels und der Fahrt-ID. Es müssen die Daten jeder Fahrt rekonstruiert werden: Fahrt-ID, Anzahl der Passagiere (maximale Anzahl gleichzeitig im Fahrzeug befindlicher Personen), Gesamtanzahl der Passagiere, die die Fahrt unternommen haben, und die Fahrtdauer (Differenz zwischen dem letzten und dem ersten Ereignis). Wenn für eine Fahrt nicht genügend Ereignisse vorhanden sind (z. B. nur Ein- oder nur Ausstieg), gilt diese Fahrt als ungültig und wird ignoriert. Alle Zeiten sind in Sekunden ab Tagesbeginn angegeben. Ausgabe der Liste der Fahrten in aufsteigender Reihenfolge der ID.
Eingabeformat
In der ersten Zeile eine ganze Zahl N (1 ≤ N ≤ 10^5) — die Anzahl der Ereignisse. Danach in N Zeilen: jedes Ereignis im Format <Fahrt-ID> <Ereignistyp> <Zeit>. Der Ereignistyp ist 'IN' (Einstieg) oder 'OUT' (Ausstieg). Die Fahrt-ID ist eine ganze Zahl von 1 bis 10^9. Die Zeit ist eine ganze Zahl von 0 bis 86400.
Ausgabeformat
Für jede gültige Fahrt eine Zeile ausgeben: Fahrt-ID maximale_Anzahl_Passagiere Gesamtanzahl_Passagiere Dauer_in_Sekunden. Wenn es keine gültigen Fahrten gibt, 'NO TRIPS' ausgeben.
Beispiele
Beispiel 1
EINGABE
6
1 IN 100
1 IN 150
1 OUT 200
2 IN 10
2 OUT 20
3 OUT 5
AUSGABE
1 2 2 100
2 1 1 10
Beispiel 2
EINGABE
4
1 IN 0
1 OUT 10
2 IN 5
2 OUT 15
AUSGABE
1 1 1 10
2 1 1 10
Beispiel 3
EINGABE
10
AUSGABE
NO TRIPS
main.kt