P2616 [USACO10JAN] Buying Feed, II S

题目描述

FJ 开车来到镇上,他要带 $K$ 吨饲料回家。运送饲料是需要花钱的,如果他的车上有 $X$ 吨饲料,开车 $D$ 公里就需要 $D×X$ 元。FJ 可以从 $N$ 家商店购买饲料,所有商店都在一个坐标轴上,第 $i$ 家店的位置是 $X_i$,饲料的售价为每吨 $C_i$ 元,库存为 $F_i$。 这个镇上有 $N(1 \le N \le 100)$ 家商店(编号为 $1 \sim N$)售卖饲料,所有商店都在一个长度为 $E(1 \le E \le 350)$ 的 $X$ 轴上。第 $i$ 个商店位于数轴上 $X_i$ 的位置,最多可以售卖给 FJ $F_i(1 \le F_i \le 100)$ 吨饲料,花费为 $C_i(1 \le C_i \le 10^6)$ 元每吨。奇妙的是,$X$ 轴上同一个坐标可能不只有一家商店。 FJ 从坐标为 $0$ 的地方出发并且只能向前走,直到到达坐标为 $E$ 的地方,并且需要买到 $K$ 吨饲料。他可以在沿途任意一家商店停下来买饲料。 请你求出 FJ 购买并运输 $K$ 吨饲料的最小花费是多少。

输入格式

- 第一行:三个整数 $K$,$ E $ 和 $ N $,$ 1\leq K \leq 100 $,$ 1\leq E \leq 350 $,$ 1\leq N \leq 100 $; - 第二行到第 $ N + 1 $ 行:第 $ i + 1 $ 行有三个整数 $ X_i $,$ F_i $ 和 $ C_i $,$0 < X_i < E $,$1\leq F_i \leq 100 $,$1\leq C_i \leq 10^6$。

输出格式

一个整数,表示购买并运送饲料的最小花费。

说明/提示

在离家较近的两家商店里各购买一吨饲料,则花费路上的钱是 $1+2=3$,花在店里的钱是 $2+2=4$。