Time Limit: 2 sec / Memory Limit: 256 MB
初期位置から距離 L 離れた目的地まで直線上のコースに沿って自転車を走らせるゲームをする.
このゲームでは,初期位置から目的地までのルートの途中,自転車が地上を走れる場所が限定されている. ここで,自転車が地上を走れる場所を地面と呼ぶ. 地面は N 個の区間 [a_i,b_i](i=1,…,N) によって表され, 初期位置からの距離 x が,ある i に対して a_i \leq x \leq b_i を満たす場合,その地点で自転車が地上を走れることを意味する.
自転車は自動的に一定の速度で前へ走るが,自転車が地上を走っている場合,プレイヤーは自転車をジャンプさせる事ができる. ジャンプをすると,自転車はその瞬間から空中に飛び,ちょうど距離 W 進んだところで着地する. 空中を飛んでいる間は,地面以外の区間を通過する事が可能だが,着地地点は地面でなければならない. また,着地地点がゴールを超えることは許されない. ジャンプは1回のゲーム中に何回でも可能であり,着地後直ちに再びジャンプすることも可能である. 一連のジャンプを終えると,自転車は再び自動的に前へ走る.
地面以外を走らせることなく自転車をゴールまで到達させるとき,必要なジャンプの最小回数を求めよ.
ただし,どのようにジャンプさせても自転車をゴールまで到達させることが不可能な場合は -1
を出力せよ.
入力形式
入力は以下の形式で与えられる.
N L W a_1 b_1 … a_N b_N
出力形式
自転車をゴールさせるのに必要なジャンプの最小回数を出力せよ.
ただし,ゴールさせるのが不可能な場合は -1
を出力せよ.
制約
- 1 \leq N \leq 10^5
- 1 \leq L \leq 10^9
- 1 \leq W \leq L
- a_i \lt b_i
- b_i \lt a_{i+1}
- a_1=0, b_N=L
- 入力値はすべて整数である.
入出力例
入力例1
2 10 4 0 4 6 10
出力例1
1
入力例2
5 40 10 0 1 9 11 19 21 29 31 39 40
出力例2
4
入力例3
4 13 6 0 1 2 3 5 6 12 13
出力例3
2
入力例4
2 10 7 0 1 9 10
出力例4
-1