时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
小 L 和他的朋友们去打怪兽, 他们一共有

个人, 每个人的体力都是相同的为

, 目前他们将面对

种怪物, 每种怪物都是打不完的, 但他们的体力是有限的, 每打死某种怪物一次, 会消耗一定的体力, 并获得一定的积分, 小L 和他的朋友们都有强迫症, 所以想要恰好消耗完全部体力, 才离开, 如果不能每个人都离开, 则宣告任务失败输出

, 注意, 对于这

个人, 他们打怪的情况不能 "相同", 请问每个人都能离开的前提下, 每个人都想获得尽可能多的积分, 请问所有人中获得的积分的最小值是多少?
"相同": 设第

个人打第

个怪次数为

, 那么我们说两个人

,

打怪的情况相同,则有
对于任意的

,都有
输入描述:
第一行包含一个整数
)
第二行包含三个数
分别表示总人数, 体力, 怪物的种类数 )
接下来每行两个数,
表示打死该怪物需要消耗的体力和打死后可以获得的积分 )
输出描述:
共
行, 每行表示所有人中获得的积分的最小值, 或者输出
表示任务失败
示例1
输入
复制
2
1 10 5
3 12
7 20
2 4
5 6
1 1
2 10 5
3 12
7 20
2 4
5 6
1 1
说明
对于样例1: 能够获得最多积分的情况是 12 * 3 + 1 = 37
对于样例2: 能够获得最多积分的情况是 12 * 3 + 1 = 37, 12 + 20 = 32, 所以答案为 min(32, 37) = 32