Programowanie konkurencyjneŁatwe

Minimalny czas na zakończenie zadań

Szczegółowy przewodnik i implementacja Python dla problemu „Minimalny czas zakończenia zadań”.

Oświadczenie o problemie

Łatwe

Napisz funkcję min_time_jobs(jobs, k, t), która znajdzie minimalny czas na zakończenie wszystkich zadań. Tablica jobs reprezentuje czas wymagany do wykonania każdego zadania. Jest k cesjonariuszy, a każdy cesjonariusz potrzebuje t jednostek czasu na wykonanie 1 jednostki zadania. Zadania można przypisywać do cesjonariuszy wyłącznie jako ciągłe podsegmenty.

Ograniczenia
  • 1 <= len(jobs) <= 10^5
  • 1 <= k <= len(jobs)
  • 1 <= t <= 1000
  • 1 <= jobs[i] <= 10^4

Przykłady

Example 1
Input
min_time_jobs([10, 7, 8, 12, 8, 5, 9], 4, 5)
Output
100
Explanation

Optimal contiguous assignment: [10, 7], [8, 12], [8, 5], [9]. Max job units assigned is 20 (8+12). Time = 20 * 5 = 100.

Example 2
Input
min_time_jobs([4, 5, 10], 2, 1)
Output
10
Explanation

Optimal contiguous assignment: [4, 5], [10]. Max job units assigned is 10. Time = 10 * 1 = 10.

Need a Hint?
Rozważ użycie struktur danych specyficznych dla Greedy, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Otwórz w Edytorze
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.