PPCG topluluğu sayesinde Santa artık depolama arabalarını dengeledi. Şimdi, yükleme alanlarına gönderilebilmeleri için onları nakliye limanlarına taşıması gerekiyor. Ne yazık ki, arabaları hareket ettirmek için izler bir karışıklıktır ve birlikte çökmeden onları nasıl ele alacağını bulması gerekir!
Meydan okuma
Her bir araba için parkurlara "etiket" (veya istasyonlar) listesi verilecektir. Arabalar, herhangi bir zaman diliminde aynı etiket / istasyonda iki araba bulunmayacak şekilde hareket ettirilmelidir. Esasen, arabaların her biri benzersiz bir etikete sahip konumlar arasında hareket eder.
Görev
Her bir araba için izlerin bir etiket listesi (hepsi pozitif tamsayılar) listesi olarak verildiğinde, tüm arabaları hedeflerine mümkün olan en kısa sürede güvenli bir şekilde göndermek için her bir arabanın ne zaman serbest bırakılması gerektiğini belirleyin.
İşte tüm ray sisteminin nasıl çalıştığına dair bir açıklama. Diyelim ki araba etiketli bir parçaya i
zamanında bırakıldı . Ardından sırasında To , sepeti ızgarada değildir ve göz ardı edilebilir.t_i
T_i_1, T_i_2, ..., T_i_n
t_1
t_i-1
i
Zaman çerçevesi de t_i
, sepeti etiketin üzerinde T_i_1
ve her zaman dilimi için t_k
gelen t_i
için t_i+n
(yarı dahil), sepeti etiketin üzerinde T_i_k+1
.
Sonraki ve dahil tüm zaman dilimleri için t_i+n
, araba hedefindedir ve artık ızgarada değildir.
Toplam t_T
süre, bir sepeti sistemde hala izleyen son zaman dilimidir.
Özellikler
Bir parça sistem göz önüne alındığında, zaman dilimlerinde listesini döndürür [t_1, t_2, ..., t_n]
nereye i
anda inci sepeti başlar t_i
başka hiçbir düzenleme güvenle için arabaları zamanın daha az toplam miktarı ile hedeflerine ulaşmak sağlayacak şekilde,.
Herhangi bir zaman çerçevesi de eğer "güvenli" açısından, t_1
için t_T
herhangi bir etikete birden fazla sepeti var, o zaman onlar çarpışır ve düzenleme "güvenli" değildi. İki arabaları hareket anlamına Not a, b
için b, a
ve hala izleri 2 yönlü oldukları için "güvenli" olması.
Biçimlendirme Spesifikasyonları
Girdi herhangi bir makul formatta pozitif tamsayılar matrisi olarak verilecektir. Çıktı herhangi bir makul biçimde pozitif tamsayıların bir listesi olarak verilmelidir. Çıktıyı sıfır dizinli zaman dilimlerinde verebilirsiniz, bu nedenle çıktı herhangi bir makul formatta negatif olmayan tamsayıların bir listesi olacaktır.
kurallar
- Standart Loopholes Uygula
- Bu bir kod golfüdür, bu nedenle bayttaki en kısa cevap kazanır
- Hiçbir cevap kabul edilmeyecek
Test Durumları
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]
Not: Advent Of Code'dan bu meydan okuma serisi için ilham aldım . Bu siteyle hiçbir bağlantım yok
Buradaki ilk zorluğun 'Bağlantılı' bölümüne bakarak dizideki tüm zorlukların bir listesini görebilirsiniz .
Mutlu Golf!