PPCGコミュニティのおかげで、サンタは現在、保管カートのバランスを調整しています。今、彼はそれらをローディングベイに送ることができるようにそれらを輸送ドックに移動する必要があります。残念ながら、カートを移動するためのトラックはめちゃくちゃで、一緒にクラッシュせずにすべてを移動する方法を見つける必要があります!
チャレンジ
各カートのトラックは、「ラベル」(またはステーション)のリストとして提供されます。カートは、いつでも2つのカートが同じラベル/ステーションにないように移動する必要があります。基本的に、カートはそれぞれに固有のラベルが付いている位置の間を移動します。
仕事
各カートのトラックをラベルのリスト(すべて正の整数)のリストとして指定し、すべてのカートをできるだけ短い時間で安全に目的地に送るために、各カートをいつリリースするかを決定します。
ここでは、トラックシステム全体の仕組みについて説明します。たとえば、カートiがt_iラベル付きのトラックにリリースされたとしT_i_1, T_i_2, ..., T_i_nます。すると、中にt_1までt_i-1、カートがiグリッド上ではなく、無視することができます。
時間枠t_iで、カートはラベルT_i_1にあり、t_kからt_iまでの時間枠ごとt_i+nに、カートはラベルにありT_i_k+1ます。
を含むすべての時間枠t_i+nで、カートは目的地にあり、グリッド上にありません。
所要時間の合計t_Tは、カートがシステムのトラック上に残っている最後の時間枠です。
仕様書
トラックシステムが指定されている場合、カートが時間に開始[t_1, t_2, ..., t_n]する時間枠のリストを返します。これにより、他の配置ではカートがより短い時間で目的地に安全に到着できなくなります。it_i
任意の時間枠であれば「安全」の面では、t_1へのt_T任意のラベル上に複数のカートがあり、それらが衝突し、配置が「安全」ではなかったです。トラックが2ウェイであるため、2つのカートがからa, bに移動してb, aも「安全」であることに注意してください。
フォーマット仕様
入力は、適切な形式の正の整数の行列として与えられます。出力は、適切な形式の正の整数のリストとして提供する必要があります。インデックスのない時間枠で出力を与えることができるので、出力は適切な形式の非負整数のリストになります。
ルール
- 標準抜け穴が適用されます
- これはコードゴルフなので、バイト単位の最も短い答えが勝ちます
- 回答は受け付けられません
テストケース
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]
注:このチャレンジシリーズは、Advent Of Codeからインスピレーションを得ました。このサイトとは関係ありません
こちらの最初のチャレンジの「リンクされた」セクションを見ると、シリーズのすべてのチャレンジのリストを確認できます。
幸せなゴルフ!