1class Solution:2def assignTasks(self, servers: List[int], tasks: List[int]) -> List[int]:3servers_available = [(w, i) for i, w in enumerate(servers)]4heapify(servers_available)5tasks_in_progress = []6res = []7time = 08for j, task in enumerate(tasks):9time = max(time, j)10if not servers_available:11time = tasks_in_progress[0][0]12while tasks_in_progress and tasks_in_progress[0][0] <= time:13heappush(servers_available, heappop(tasks_in_progress)[1])14res.append(servers_available[0][1])15heappush(tasks_in_progress, (time + task, heappop(servers_available)))16return res