#117. 拓拓的套餐

拓拓的套餐

题目描述

套餐有 NN 种,每个套餐限购一次。

对于套餐 i=1,2,,Ni=1,2,\ldots,N 来说,第 ii 种套餐包含 AiA_i 个包子和 BiB_i 串炸串。

拓拓饭量很大,至少要吃 XX 个包子和 YY 串炸串才能吃饱。(AiX\sum A_i\ge XBiY\sum B_i\ge Y

通过选择和购买一些套餐来确定拓拓是否可以至少吃 X X 个包子和 Y Y 串炸串。

另外,如果可能的话,找出拓拓必须购买的最少套餐数量。

请注意,拓拓不能购买 22 次的同类型套餐,因为每种类型的套餐限购 11 次。

输入格式

第一行一个整数 NN

第二行两个整数 XXYY

接下来 NN 行每行两个整数 AiA_iBiB_i,用空格隔开。

输出格式

如果拓拓不可能至少吃 X X 个或更多包子和 Y Y 个或更多串炸串,则输出1 -1

如果可能,输出一个整数,表示必须购买的最少套餐数量。

样例

3
5 6
2 1
3 4
2 3
2

解释#1

拓拓至少要吃 55 个及以上个包子和 66 个及以上串炸串才能吃饱。

通过购买套餐 22和套餐 33,拓拓可以吃到 3+2=5 3 + 2 = 5 个包子和 4+3=7 4 + 3 = 7 串炸串。

3
8 8
3 4
2 3
2 1
-1

解释#2

即使拓拓买下了所有套餐,他也吃不到至少 88 个包子和 88 串炸串, 所以输出 1 -1

数据范围

  • 1  N  300 1\ \leq\ N\ \leq\ 300
  • 1  X, Y  300 1\ \leq\ X,\ Y\ \leq\ 300
  • 1  Ai, Bi  300 1\ \leq\ A_i,\ B_i\ \leq\ 300
  • 输入的数全是整数