小李是一名程序员,他正在为一家餐饮公司开发一个收银系统。该系统需要检查顾客在买单时,是否可以用手中的硬币支付订单的精确金额,而不需要找零。
每个订单的金额和顾客拥有的硬币种类和数量都不同,因此小李需要编写一个通用的程序来解决这个问题。
比如:A 顾客需要支付 180 元的餐费,如果 A 顾客有 3 个 10 元的硬币,和 4 个 40 元的硬币,那么该顾客可以支付 4 个 40 元的硬币和 2 个 10 元的硬币,而不需要找零。
再比如,B 顾客需支付 100 元的餐费,如果 B 顾客有 1 个 50 元的硬币 和 2 个 80 元的硬币,那么无论如何组合都无法组合出订单金额,需要找零。
第一行包含整数 T,表示数据组数。
对于每组数据,第一行包含两个整数 N 和 X,表示硬币种类数和订单金额。
接下来 N 行,每行包含两个整数 A_i 和 B_i,表示硬币的面值和数量。
对于每组数据,输出一行,如果顾客可以用手中的硬币支付订单的精确金额,则输出 Yes
;否则输出 No
。
2 3 450 100 2 50 2 20 4 4 200 10 3 20 4 30 5 40 6
No Yes
3 2 19 2 3 5 6 2 18 2 3 5 6 3 1001 1 1 2 1 100 10
Yes No Yes
1 3 1 100 50 100 50 100 50
No
第 1 组数据中,无论如何选择,都需要找零。
第 2 组数据中,可以通过 {40 \times 5} 的选择方式不找零。
第 1 组数据中,可以通过 {5 \times 3 + 2 \times 2} 的选择方式不找零。
第 2 组数据中,无论如何选择,都需要找零。
第 3 个样例中,可以通过 {100 \times 10 + 1 \times 1} 的选择方式不找零。
【样例 3 说明】
第 1 组数据中,无论如何选择,都需要找零。
对于 100\% 的数据,1 \le T \le 10,1 \le N \le 50,1 \le X \le 10^4,1 \le A_i \le 100,1 \le B_i \le 50。
所有的 A_i 互相不同。