#797
Unrated

鉄道旅行 2 (Railway Trip 2)

서브테스크
시간 제한
2s
메모리 제한
512MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

IOI 鉄道は 1 本の鉄道路線を運営している.IOI 鉄道線には一直線上に並んだ NN 個の駅があり,11 から NN までの番号が付けられている.各 ii (1≤i≤N−11 \le i \le N-1) に対して,駅 ii と駅 i+1i+1 の間は線路で結ばれている.

IOI 鉄道線には MM 系統の運行系統があり,11 から MM までの番号が付けられている.系統 jj (1≤j≤M1 \le j \le M) の列車の始発駅は駅 AjA_j であり,終着駅は駅 BjB_j である.列車は各駅に停車する.すなわち,系統 jj の列車は,Aj<BjA_j < B_j のとき駅 AjA_j,駅 Aj+1A_j + 1,…\ldots,駅 BjB_j の順に停車し,Aj>BjA_j > B_j のとき駅 AjA_j,駅 Aj−1A_j - 1,…\ldots,駅 BjB_j の順に停車する.

旅人の JOI くんは,QQ 個の旅行計画を考えている.kk 番目 (1≤k≤Q1 \le k \le Q) の計画は,駅 SkS_k から出発し,駅 TkT_k にいくつかの列車を乗り継いで到着するというものである.

しかしながら,JOI くんは長旅で疲れているので,空いている列車に乗車し,着席したい.そのため,JOI くんがある列車に乗車するのは,その列車の始発駅から(始発駅を含めて)KK 駅以内の駅からのみとした.すなわち,JOI くんが系統 jj の列車に乗車するとき,Aj<BjA_j < B_j であれば駅 AjA_j,駅 Aj+1A_j + 1,…\ldots,駅 min⁡{Aj+K−1,Bj−1}\min\{A_j + K - 1, B_j - 1\} から乗車でき,Aj>BjA_j > B_j であれば駅 AjA_j,駅 Aj−1A_j - 1,…\ldots,駅 max⁡{Aj−K+1,Bj+1}\max\{A_j - K + 1, B_j + 1\} から乗車できる.JOI くんは,列車に乗車した駅の次の駅からその列車の終着駅までの各駅のうちいずれかの駅で下車する.

JOI くんはこの条件のもと,なるべく乗り継ぎの回数を少なくしたい.

IOI 鉄道線の情報と JOI くんの計画が与えられたとき,それぞれの計画について,JOI くんが計画を達成するために乗車する列車の数の最小値を求めるプログラムを作成せよ.

입력

入力は以下の形式で標準入力から与えられる.入力される値はすべて整数である.

N K
M
A_1 B_1
A_2 B_2
...
A_M B_M
Q
S_1 T_1
S_2 T_2
...
S_Q T_Q

출력

標準出力に QQ 行で出力せよ.kk 行目 (1≤k≤Q1 \le k \le Q) には,JOI くんが kk 番目の計画を達成するために乗車する列車の数の最小値を出力せよ.ただし,計画が達成不可能な場合は,−1-1 を出力せよ.

예제 입력 1

5 2
2
5 1
3 5
3
5 3
3 2
2 1

예제 출력 1

1
2
-1

예제 입력 2

6 3
2
1 6
5 1
4
5 1
6 3
3 6
2 1

예제 출력 2

1
-1
1
2

예제 입력 3

6 5
4
3 1
2 4
5 3
4 6
5
1 5
3 2
2 6
6 3
5 4

예제 출력 3

-1
1
2
-1
1

예제 입력 4

12 1
5
1 7
10 12
3 5
8 10
5 9
7
2 11
5 8
3 12
4 6
1 9
9 10
1 4

예제 출력 4

-1
1
4
-1
2
-1
1

제한

  • 2≤N≤100 0002 \le N \le 100\,000.
  • 1≤K≤N−11 \le K \le N - 1.
  • 1≤M≤200 0001 \le M \le 200\,000.
  • 1≤Aj≤N1 \le A_j \le N (1≤j≤M1 \le j \le M).
  • 1≤Bj≤N1 \le B_j \le N (1≤j≤M1 \le j \le M).
  • Aj≠BjA_j \ne B_j (1≤j≤M1 \le j \le M).
  • (Aj,Bj)≠(Ak,Bk)(A_j, B_j) \ne (A_k, B_k) (1≤j<k≤M1 \le j < k \le M).
  • 1≤Q≤50 0001 \le Q \le 50\,000.
  • 1≤Sk≤N1 \le S_k \le N (1≤k≤Q1 \le k \le Q).
  • 1≤Tk≤N1 \le T_k \le N (1≤k≤Q1 \le k \le Q).
  • Sk≠TkS_k \ne T_k (1≤k≤Q1 \le k \le Q).
  • (Sk,Tk)≠(Sl,Tl)(S_k, T_k) \ne (S_l, T_l) (1≤k<l≤Q1 \le k < l \le Q).

서브태스크

  1. (88 점) N≤300N \le 300,M≤300M \le 300,Q≤300Q \le 300.
  2. (88 점) N≤2 000N \le 2\,000,M≤2 000M \le 2\,000,Q≤2 000Q \le 2\,000.
  3. (1111 점) Q=1Q = 1.
  4. (2525 점) K=N−1K = N - 1.
  5. (3535 점) Aj<BjA_j < B_j (1≤j≤M1 \le j \le M),Sk<TkS_k < T_k (1≤k≤Q1 \le k \le Q).
  6. (1313 점) 追加の制約はない.
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출

제출 내역이 없습니다.

맞은 사람

아직 맞은 사람이 없습니다.

난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출

제출 내역이 없습니다.