有m个水果超市在1-n个小时的不同时间段提供不同价格的打折水果,如果某餐厅每个小时都要新采购一种水果给餐厅使用的话, 请选出n个小时内,采购水果的最便宜的花费总和。
(假设m个超市打折时间段可以覆盖n小时)
输入:
n — 总小时数 n
m — 水果超市个数 m
x[0] x[1] x[2] — 第2~m+1行:每行长度为3的数组,代表各超市在x[0]~x[1]小时(包含[x1])提供价格为x2的水果。
范围提示: 1 <= n < 2^10 (1024)
输出:
采购水果的最便宜的花费总和。
# 输入
4
6
2 3 10
2 4 20
1 3 15
1 4 25
3 4 8
1 4 16
# 输出
41
'''
购买水果最便宜的方案
'''
def cheapest(n, m, price):
'''
n: 总小时数
m: 水果超市个数
price: 每个水果超市的打折起止时间和价格
price[i][0], price[i][1]: 水果超市i的打折起止时间
price[i][2]: 水果超市i的打折价格
'''
price.sort(key = lambda x: x[2]) # 按照折扣价格排序
min_money = 0
for i in range(1, n+1):
for j in range(m):
if price[j][0] <= i and i <= price[j][1]:
min_money += price[j][2]
break
return min_money
n = int(input())
m = int(input())
price = []
for i in range(m):
price.append(list(map(int, input().split(" ")))) # price[i]: 第i个水果超市
# price = [list(map(int, input().split(" "))) for _ in range(m)]
print(cheapest(n, m, price))