Untitled

 avatar
unknown
python
a year ago
641 B
1
Indexable
def max_requests(total_bandwidth, bandwidth, request):
    dp = {}
    def dfs(i, remaining_bandwidth):
        if i == len(bandwidth):
            return 0
        if i in dp:
            return dp[(i, remaining_bandwidth)]
        if bandwidth[i] > remaining_bandwidth:
            dp[(i, remaining_bandwidth)] = dfs(i+1, remaining_bandwidth)
            return dp[(i, remaining_bandwidth)]
        else:
            dp[(i, remaining_bandwidth)] =  max(dfs(i +1 , remaining_bandwidth), dfs(i +1 , remaining_bandwidth-bandwidth[i])+request[i]) 
            return dp[(i, remaining_bandwidth)]
            
    return dfs(0, total_bandwidth)