Dank der PPCG-Community hat der Weihnachtsmann jetzt seine Lagerwagen ausgeglichen. Jetzt muss er sie in die Transportdocks bringen, damit sie zu den Laderampen geschickt werden können. Leider sind die Spuren, um die Karren zu bewegen, ein Chaos, und er muss herausfinden, wie man sie überall hin bringt, ohne dass sie zusammenstoßen!
Herausforderung
Sie erhalten die Spuren für jeden der Wagen als Listen von "Etiketten" (oder Stationen). Die Wagen müssen so bewegt werden, dass sich zu keinem Zeitpunkt zwei Wagen auf demselben Etikett / derselben Station befinden. Im Wesentlichen bewegen sich die Wagen zwischen Positionen, die jeweils ein eindeutiges Etikett haben.
Aufgabe
Bestimmen Sie anhand der Spuren für jeden Wagen als Liste von Etikettenlisten (die alle positive ganze Zahlen sind), wann jeder Wagen freigegeben werden soll, um alle Wagen in kürzester Zeit sicher an ihren Bestimmungsort zu senden.
Hier finden Sie eine Erklärung, wie das gesamte Schienensystem funktioniert. Angenommen, der Warenkorb i
wird zur Zeit t_i
auf einer Spur mit Etiketten veröffentlicht T_i_1, T_i_2, ..., T_i_n
. Während t_1
des t_i-1
Vorgangs i
befindet sich der Einkaufswagen nicht im Raster und kann ignoriert werden.
Zum Zeitrahmen t_i
befindet sich der Wagen auf dem Etikett T_i_1
, und für jeden Zeitrahmen t_k
von t_i
bis t_i+n
(halb inklusive) befindet sich der Wagen auf dem Etikett T_i_k+1
.
Für alle Zeiträume nach und einschließlich t_i+n
befindet sich der Wagen am Ziel und befindet sich nicht mehr im Raster.
Die Gesamtzeit t_T
ist der letzte Zeitrahmen, in dem sich ein Wagen noch auf einer Spur im System befindet.
Spezifikationen
Geben Sie bei einem gegebenen Streckensystem eine Liste von Zeitrahmen zurück, in [t_1, t_2, ..., t_n]
denen der i
dritte Wagen zum Zeitpunkt startet t_i
, sodass keine andere Anordnung es den Wagen ermöglichen würde, mit einer geringeren Gesamtzeit sicher an ihr Ziel zu gelangen.
In Bezug auf die „sicher“, wenn jederzeit Rahmen von t_1
bis t_T
mehr als ein Wagen auf jedem Etikett, dann kollidieren sie und die Anordnung war nicht „sicher“. Beachten Sie, dass sich zwei Wagen von a, b
nach bewegen können b, a
und trotzdem "sicher" sind, da die Gleise in beide Richtungen verlaufen.
Formatierungsspezifikationen
Die Eingabe wird als Matrix positiver Ganzzahlen in einem beliebigen vernünftigen Format angegeben. Die Ausgabe sollte als Liste positiver Ganzzahlen in einem angemessenen Format angegeben werden. Sie können die Ausgabe in Zeiträumen mit einem Index von Null angeben, sodass die Ausgabe eine Liste nicht negativer Ganzzahlen in einem angemessenen Format ist.
Regeln
- Standardschlupflöcher gelten
- Dies ist ein Code-Golf, so dass die kürzeste Antwort in Bytes gewinnt
- Es wird keine Antwort akzeptiert
Testfälle
Input -> Output
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] -> [1, 1, 1]
[[1, 2, 3], [1, 2, 3]] -> [1, 2]
[[1, 2, 3], [3, 2, 1]] -> [1, 2]
[[1, 2, 3, 4], [4, 3, 2, 1]] -> [1, 1]
[[1, 1, 1], [1, 1, 1]] -> [1, 4]
[[1, 2, 3, 4], [2, 4, 3, 1]] -> [2, 1]
[[1, 2, 3, 4, 5, 6, 7], [2, 3, 3, 4], [5, 4, 3]] -> [1, 3, 4]
[[1, 2, 3, 4, 4], [1, 2, 3, 5, 4], [1, 2, 3, 4, 5]] -> [2, 3, 1]
Hinweis: Ich habe mich für diese Herausforderungsserie von Advent Of Code inspirieren lassen . Ich habe keine Verbindung zu dieser Site
Eine Liste aller Herausforderungen in der Serie finden Sie im Abschnitt "Verknüpft" der ersten Herausforderung hier .
Viel Spaß beim Golfen!