Z01
Kargo Bölüşümü
Teknik Tanım & Görev
Bir lojistik firmasının elinde, sırayla yüklenmesi gereken n adet yük var. Yüklerin ağırlıkları `yukler` dizisinde SIRALI olarak verilmiştir ve bu SIRA DEĞİŞTİRİLEMEZ (yükleme rampası tek yönlü).
Firma k adet kamyon kiralayacak. Yükler kamyonlara ARDIŞIK DİLİMLER hâlinde bölünecek: her kamyon EN AZ bir yük almalıdır ve tüm yükler dağıtılmalıdır.
Firma EN YÜKLÜ kamyonun ağırlığını EN AZA indirmek istiyor. Bu minimum olası "en yüklü kamyon ağırlığını" döndür. Geçersiz bir durum varsa (k > n veya k < 1) -1 döndür.
Fonksiyon İmzası (Python)
min_en_yuk_kapasite(yukler: list[int], k: int) -> intGirdi ve Çıktı Sözleşmesi
Çıktı Kuralı:Minimum olası maksimum dilim toplamı. k > n veya k < 1 ise -1.
Sistem Kısıtları (Constraints)
1 <= yukler.length <= 10^5
1 <= k <= 10^5 (k > n ise geçersiz -> -1)
1 <= yukler[i] <= 10^4Örnek Yürütme Analizi
yukler = [7, 2, 5, 10, 8], k = 2
olası 2'li bölmeler:
[7,2,5] | [10,8] -> max(14, 18) = 18 (EN İYİ)
cevap: 18Örnek Test Senaryoları (3)
Örnek 1
Girdi:
[[7,2,5,10,8],2]Beklenen Çıktı:
18Örnek 2: 5 Yük 2 Bölüm (9 Kapasite)
Girdi:
[[1,2,3,4,5],2]Beklenen Çıktı:
9Örnek 3: k=n (Maksimum Eleman 30)
Girdi:
[[10,20,30],3]Beklenen Çıktı:
30