def minimumTimeRequired(self, jobs: List[int], k: int) -> int:
def backtrack(pos, workloads, limit):
if pos >= len(jobs): return True
for i in range(len(workloads)):
if jobs[pos] + workload <= limit:
workloads[i] += jobs[pos]
if backtrack(pos + 1, workloads, limit): return True
workloads[i] -= jobs[pos]
return backtrack(0, [0] * k, limit)
l, r = jobs[0], sum(jobs)