#6846. 远征

远征

远征

题目描述

一群奶牛开着卡车进入丛林探险。

由于驾驶技术不佳,卡车撞上了一块石头,导致油箱被刺破。现在,卡车每行驶 (1) 个单位距离,就会消耗 (1) 单位燃油。

为了修理卡车,奶牛们需要前往最近的城镇。城镇距离卡车当前位置不超过 (1,000,000) 个单位。

在卡车当前位置与城镇之间的道路上,共有 (N) 个加油站。每个加油站可以提供一定数量的燃油。

由于丛林十分危险,奶牛们希望在前往城镇的过程中,尽可能少地停车加油。

卡车的油箱容量足够大,可以认为没有容量限制。

已知:

  • 卡车当前位置距离城镇 (L) 个单位;
  • 卡车当前拥有 (P) 单位燃油;
  • 每个加油站距离城镇的位置以及可提供的燃油量。

请计算卡车到达城镇所需的最少加油次数。

如果无论如何都无法到达城镇,输出 (-1)。


输入格式

第一行输入一个整数 (T),表示测试数据的组数。

对于每组测试数据:

第一行输入一个整数 (N),表示加油站数量。

接下来 (N) 行,每行输入两个整数 (D_i,F_i),表示第 (i) 个加油站:

  • 距离城镇 (D_i) 个单位;
  • 可以提供 (F_i) 单位燃油。

最后一行输入两个整数 (L,P),表示:

  • 卡车当前位置距离城镇 (L) 个单位;
  • 卡车当前拥有 (P) 单位燃油。

输出格式

对于每组测试数据,输出一个整数,表示到达城镇所需的最少加油次数。

如果无法到达城镇,输出:

-1

每组测试数据的答案占一行。


数据范围

1 ≤ T
1 ≤ N ≤ 10000
1 ≤ Di ≤ 1000000
1 ≤ Fi ≤ 100
1 ≤ L ≤ 1000000
1 ≤ P ≤ 1000000

所有加油站都位于卡车当前位置和城镇之间。

卡车每行驶 (1) 个单位距离,消耗 (1) 单位燃油。

油箱容量没有限制。


样例输入

1
4
4 4
5 2
11 5
15 10
25 10

样例输出

2

样例说明

卡车当前位置距离城镇 (25) 个单位,并且当前拥有 (10) 单位燃油。

道路上有 (4) 个加油站:

加油站距离城镇 可提供燃油
4
5 2
11 5
15 10

注意,输入给出的距离是:

加油站到城镇的距离

而不是加油站到卡车起点的距离。

因此,这些加油站距离卡车起点的位置分别为:

25 - 4  = 21
25 - 5  = 20
25 - 11 = 14
25 - 15 = 10

也就是说,从卡车起点出发,加油站依次位于:

10、14、20、21

个单位的位置。

一种最优方案如下:

  1. 卡车先行驶 (10) 个单位,到达可以提供 (10) 单位燃油的加油站;
  2. 第一次停车,加油 (10) 单位;
  3. 再行驶 (4) 个单位,到达可以提供 (5) 单位燃油的加油站;
  4. 第二次停车,加油 (5) 单位;
  5. 使用剩余燃油继续行驶,最终到达城镇。

因此,最少需要停车加油:

2 次