# 小偷来到了一个神秘的王宫,突然眼前一亮,发现5个宝贝,每个宝贝的价值都不一样,且重量也不一样,但是小偷的揹包携带重量有限,所以他不得不在宝贝中做出选择,才能使偷到的财富最大,请你帮助小偷计算一下。
#
# 输入描述:
#
# 宝贝价值:6,3,5,4,6
#
# 宝贝重量:2,2,6,5,4
#
# 小偷揹包容量:10
#
# 输出描述:
#
# 偷到宝贝的总价值:15
def MaxMoney(file_name,cap):
# print(file_name)
# with open(file_name,'r') as file:
list1=file.readlines()
treasure_name=[]
treasure_money=[]
treasure_weight=[]
dict_treasure_average={}
dict_treasure_money={}
dict_treasure_weight={}
for i in range(0,len(list1)):
# print(list1[i].split('|')[1])
treasure_name.append(list1[i].split('|')[1].strip())
treasure_money.append(list1[i].split('|')[2].strip())
treasure_weight.append(list1[i].split('|')[3].strip())
dict_treasure_money[treasure_name[i]]=treasure_money[i]
dict_treasure_weight[treasure_name[i]]=treasure_weight[i]
dict_treasure_average[treasure_name[i]]=int(treasure_money[i])/int(treasure_weight[i])
dict_treasure_average=sorted(dict_treasure_average.items(),key=lambda x:x[1],reverse=True)
print(dict_treasure_average)
money = 0
treasure_take=[]
# print(len(dict_treasure_average))
for i in range(0,len(dict_treasure_average)):
# print(dict_treasure_weight[dict_treasure_average[i][0]])
if cap >= int(dict_treasure_weight[dict_treasure_average[i][0]]):
money += int(dict_treasure_money[dict_treasure_average[i][0]])
treasure_take.append(dict_treasure_average[i][0])
cap -= int(dict_treasure_weight[dict_treasure_average[i][0]])
print('cap %d' % cap)
print(money,treasure_take)
if __name__=='__main__':
file_name='E:\python_test\exercise0401\\treasure.txt'
with open(file_name,'r') as file:
MaxMoney(file,13)