题目
每当我们扫描一个源代码文件,都需要支付一些金币。但是,如果你觉得某个文件后面还会经常出现,那你可以考虑多花一些金币,将它的扫描结果保存起来,这样下次再遇到它时就不用重新支付扫描费用了。
现在,你的挑战是:根据给出的文件序列和每个文件的大小,确定最省钱的策略,使得总花费的金币最少。
输入:
第一行:保存一个扫描报告的费用(M)
第二行:连续出现的文件的编号序列
第三行:每个文件的大小
输出:
你需要支付的最少金币数量
示例:
输入:
5
2 2 2 2 2 5 2 2 2
3 3 3 3 3 1 3 3 3
输出:9
代码
def calculate_cost(m, file_ids, file_sizes):
file_data = {
<