#5706. 存钱罐

存钱罐

题目描述

小明有一个存钱罐,里面装满了硬币。已知存钱罐本身的重量是 EE 克,装满硬币后的总重量是 FF 克。

现在有 NN 种不同面值的硬币,第 ii 种硬币的面值是 PiP_i 分,重量是 WiW_i 克。

假设每种硬币的数量无限,请问存钱罐里的硬币总面值最小是多少?最大是多少?

输入格式

第一行三个整数 E,F,NE, F, N,分别表示空罐重量、满罐重量和硬币种类数。
接下来 NN 行,每行两个整数 Pi,WiP_i, W_i,分别表示第 ii 种硬币的面值和重量。

输出格式

输出一行,包含两个整数,分别表示最小总面值和最大总面值。
如果无法凑出目标重量,输出 This is impossible.

样例

10 110 2
1 1
30 50
60 100

样例解释
硬币净重 =11010=100= 110 - 10 = 100 克。
有两种硬币:面值 11 分重量 11 克,面值 3030 分重量 5050 克。
最小面值方案:全部用 11 分硬币,100100 枚,总面值 100100 分。但样例输出最小是 6060,说明可能还有其它组合。实际最小:用 223030 分硬币(重量 100100 克,面值 6060 分)。最大:10010011 分硬币面值 100100 分。故输出 60 10060\ 100

数据范围

  • 1E<F100001 \le E < F \le 10000
  • 1N1001 \le N \le 100
  • 1Pi500001 \le P_i \le 50000
  • 1Wi100001 \le W_i \le 10000