3216 - 收银系统

题目描述

小李是一名程序员,他正在为一家餐饮公司开发一个收银系统。该系统需要检查顾客在买单时,是否可以用手中的硬币支付订单的精确金额,而不需要找零。

每个订单的金额和顾客拥有的硬币种类和数量都不同,因此小李需要编写一个通用的程序来解决这个问题。

比如:A 顾客需要支付 180 元的餐费,如果 A 顾客有 310 元的硬币,和 440 元的硬币,那么该顾客可以支付 440 元的硬币和 210 元的硬币,而不需要找零。

再比如,B 顾客需支付 100 元的餐费,如果 B 顾客有 150 元的硬币 和 280 元的硬币,那么无论如何组合都无法组合出订单金额,需要找零。

输入

第一行包含整数 T,表示数据组数。

对于每组数据,第一行包含两个整数 NX,表示硬币种类数和订单金额。

接下来 N 行,每行包含两个整数 A_iB_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 说明】

1 组数据中,无论如何选择,都需要找零。

2 组数据中,可以通过 {40 \times 5} 的选择方式不找零。

【样例 2 说明】

1 组数据中,可以通过 {5 \times 3 + 2 \times 2} 的选择方式不找零。

2 组数据中,无论如何选择,都需要找零。

3 个样例中,可以通过 {100 \times 10 + 1 \times 1} 的选择方式不找零。

【样例 3 说明】

1 组数据中,无论如何选择,都需要找零。

【数据范围】

对于 100\% 的数据,1 \le T \le 101 \le N \le 501 \le X \le 10^41 \le A_i \le 1001 \le B_i \le 50

所有的 A_i 互相不同。

标签
题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 17
通过人数 6
金币数量 0 枚
难度 基础


上一题 下一题