1 # 在 m 批客人中选择 n 批上 n 个桌子 2 n, m = [int(x) for x in input().split()] 3 # 每个桌子可容纳的最大人数 4 table = [int(x) for x in input().split()] 5 # 分别表示第 i 批客人的人数和预计消费金额 6 cus = [[int(x) for x in input().split()] for i in range(m)] 7 8 # 将桌子按可容纳人数从小到大排列 9 table.sort()10 # 按每批顾客的人数从小到大排序11 cus = sorted(cus, key=lambda x: x[0])12 # 总金额13 money = 014 15 for i in range(n):16 # 盛放第 i 个可接受的顾客批 j17 temp = []18 # 注意 range 中要用 cus 的 length 时更新19 for j in range(len(cus)):20 if cus[j][0] > table[i]:21 break22 temp.append(cus[j])23 # 按消费金额排序24 temp = sorted(temp, key=lambda x: x[1])25 if temp:26 money += temp[-1][1]27 # 此批客人已就坐28 cus.remove()29 print(money)