小红来到了一家饭馆,该饭馆一共有道菜,第道菜的价格为。其中有一些菜里有蘑菇。 小红希望点道菜,总价格越小越好。由于小红不喜欢吃蘑菇,她希望点的菜最多有道菜中包含蘑菇。小红想知道最终最小的总价格是多少。
区块链毕设网qklbishe.com为您提供问题的解答
小红来到了一家饭馆,该饭馆一共有道菜,第道菜的价格为。其中有一些菜里有蘑菇。
小红希望点道菜,总价格越小越好。由于小红不喜欢吃蘑菇,她希望点的菜最多有道菜中包含蘑菇。小红想知道最终最小的总价格是多少。
import sys class Dish: def __init__(self, if_has_mushroom, price): self.if_has_mushroom = if_has_mushroom self.price = price n, m, k = map(int, input().split()) s = input() a = list(map(int, input().split())) dishes = [Dish(False, 0) for _ in range(n)] for i in range(n): if s[i] == '0': dishes[i].if_has_mushroom = False elif s[i] == '1': dishes[i].if_has_mushroom = True for i in range(n): dishes[i].price = a[i] # for dish in dishes: # print(f"if_has_mushroom={dish.if_has_mushroom}, price={dish.price}") dishes = sorted(dishes, key=lambda x: x.price, reverse=False) cumsum_dishes_number_has_mushroom=0 cumsum_total_price=0 cumsum_dishes_ordered=0 for dish in dishes: if dish.if_has_mushroom: if cumsum_dishes_number_has_mushroom+1<=m: cumsum_total_price += dish.price cumsum_dishes_number_has_mushroom+=1 cumsum_dishes_ordered+=1 else: continue else: cumsum_total_price += dish.price cumsum_dishes_ordered+=1 if cumsum_dishes_ordered==k: break if cumsum_dishes_ordered==k: print(f"{cumsum_total_price}") else: print(-1)
编辑于 2024-03-07 19:56:52
以上就是关于问题小红来到了一家饭馆,该饭馆一共有道菜,第道菜的价格为。其中有一些菜里有蘑菇。
小红希望点道菜,总价格越小越好。由于小红不喜欢吃蘑菇,她希望点的菜最多有道菜中包含蘑菇。小红想知道最终最小的总价格是多少。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训