04 01農心ラーメン工場


1)最大限度内で調達日目標を確定する
2)供給日目標から最低価格を抽出する
3)stockがkより小さい場合は、この操作を繰り返す
import heapq
ramen_stock = 4
supply_dates = [4, 10, 15]
supply_supplies = [20, 5, 10]
supply_recover_k = 30
def get_minimum_count_of_overseas_supply(stock, dates, supplies, k):
answer = 0
last_added_date_index = 0
max_heap = []
while stock <= k:
    while last_added_date_index < len(dates) and dates[last_added_date_index] <= stock:
        heapq.heappush(max_heap, -supplies[last_added_date_index])
        last_added_date_index += 1

    answer += 1
    heappop = heapq.heappop(max_heap)
    stock += -heappop

return answer
print(get_minimum_count_of_overseas_supply(ramen_stock, supply_dates, supply_supplies, supply_recover_k))
print(「正解=2/現在のプール値=」,get minimum count of overse supply(4,[4,10,15],[20,5,10],30)
print(「正しい=4/現在のプール値=」,get minimum count of overse supply(4,[4,10,15,20],[20,5],40)
print(「正解=1/現在のプール値=」,get minimum count of overse supply(2,[1,10],[1000],11)