#1415. 跳跃游戏

跳跃游戏

跳跃游戏

兔子跳跃

题目描述

兔子常常感到孤独,所以当他们决定出去走走,去见见他们的朋友,他们跳得很快。

兔子正走在一条无限长的直线道路上。这条道路上点的编号为\ldots3-32-21-100112233\ldots从西到东。

兔子的家是在00点上,而她想要见的朋友在点10000000011000000001

她是兔子当然只能通过移动跳跃前行,她有两个跳跃类型:小跳和大跳。

当她在点xx,通过一小跳,她可以移动到点(x+2)(x+2)(x2)(x-2)

通过一个大跳跃,她可以移动到点(x+k)(x+k)或点(xk)(x-k)

不幸的是,道路总是那么坑坑洼洼,洞的大小不一,有些还可能包含连续几个点,兔子不能跳到这些洞中。

兔子喜欢用小跳,因为这样更加的省力。请问到达10000000011000000001所要使用的最少的大跳跃数量。如果不能达到这一点,输出1-1

注意,道路无限长,当然能跳到超过10000000011000000001的点。

输入格式

有多组测试数据:

第一行,包含一个整数TT,表示测试数据的个数。

每组测试数据,第一行一个整数nn,表示共有nn个洞。

接下来一行n×2n \times 2个整数,每个洞的两个端点编号,所有端点都是严格递增顺序给出(编号在[1,109][1,10^{9}]范围内)。

最后一行一个整数kk

输出格式

TT行,到达目标所需的最少大跳跃次数。无法到达输出1-1

数据范围与提示

对于100%100\%的数据,1T101 \leq T \leq 101n251 \leq n \leq 25k[3,109]k \in [3,10^{9}]

样例

5
1
1 2
3
1
1 2
4
1
2 3
3
4
2 17 21 36 40 55 59 74
19
12
187640193 187640493 187640738 187640845 564588641 564588679 564588696 564588907 605671187 605671278 605671288 605671386 755723729 755723774 755723880 755723920 795077469 795077625 795077851 795078039 945654724 945654815 945655107 945655323
475
1
-1
3
5
9