luogu#P8163. [JOI 2022 Final] 铁路旅行 2 (Railway Trip 2)

[JOI 2022 Final] 铁路旅行 2 (Railway Trip 2)

题目描述

IOI 铁路公司在一条铁轨上运营线路。铁轨为一条直线,该铁轨上有 NN 个车站,编号为 1N1 \sim N。车站 ii 与车站 i+1i + 1 之间由一条铁轨直接连接。

IOI 铁路公司正在运营 MM 条线路,编号为 1M1 \sim M。线路 jj 的起点为 AjA_j,终点为 BjB_j,列车在每一站均会停靠,即如果 Aj<BjA_j < B_j,一列 jj 号线的列车会按顺序在车站 Aj,Aj+1,,BjA_j, A_j + 1, \ldots, B_j 停靠。如果 Aj>BjA_j > B_j,一列 jj 号线的列车会按顺序在车站 Aj,Aj1,,BjA_j, A_j - 1, \ldots, B_j 停靠。

JOI 君是一个旅行者。他有 QQ 个旅行计划。在第 kk 个旅行计划中他计划从车站 SkS_k 通过乘坐列车前往车站 TkT_k

然而,JOI 君因长途跋涉而疲惫不堪。他希望他乘坐的列车均有空座以便休息。因此 JOI 君决定,只有当某条线路的起点站是第 KK 个或更早的车站时,他才会在该站乘坐该条线路的列车。换句话说,对于线路 jj,如果 Aj<BjA_j < B_j,那么他只会在车站 $A_j, A_j + 1, \ldots, \min \{ A_j + K - 1, B_j - 1 \}$ 乘上线路 jj 的列车。如果 Aj>BjA_j > B_j,那么他只会在车站 $A_j, A_j - 1, \ldots, \max \{ A_j - K + 1, B_j + 1 \}$ 乘上线路 jj 的列车。

在这些条件下,JOI 君希望尽量减少乘坐火车的次数。

给出 IOI 铁路公司的线路信息和 JOI 君的计划,写一个程序计算对于 JOI 君的每一个计划,他所需的最小乘车次数。

输入格式

第一行,两个正整数 N,KN, K

第二行,一个正整数 MM

接下来 MM 行,第 jj 行两个正整数 Aj,BjA_j, B_j

接下来一行,一个正整数 QQ

接下来 QQ 行,第 kk 行两个正整数 Sk,TkS_k, T_k

输出格式

输出 QQ 行,第 kk 行一个数,表示对于 JOI 君的第 kk 个计划,他实现该计划所需的最小乘车次数。如果无论如何无法实现第 kk 个计划,则输出 -1

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

1
2
-1

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

1
-1
1
2

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

-1
1
2
-1
1

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

-1
1
4
-1
2
-1
1

提示

【样例解释 #1】

对于第一个计划,JOI 君要从车站 55 前往车站 33。具体地,此计划可以通过如下方式实现:JOI 君在车站 55 乘上 11 号线的列车,并在车站 33 下车。JOI 君总共乘坐了一次列车。由于不可能花费比 11 更少的乘车次数实现该计划,在第一行输出 11

对于第二个计划,JOI 君要从车站 33 前往车站 22。具体地,此计划可以通过如下方式实现:JOI 君在车站 33 乘上 22 号线的列车,并在车站 44 下车;然后在车站 44 乘上 11 号线的列车,并在车站 22 下车。JOI 君总共乘坐了两次列车。由于不可能花费比 22 更少的乘车次数实现该计划,在第二行输出 22

对于第一个计划,JOI 君要从车站 22 前往车站 11。由于无论如何无法实现该计划,在第三行输出 -1

这个样例满足子任务 1,2,61, 2, 6 的限制。

【样例解释 #2】

这个样例满足子任务 1,2,61, 2, 6 的限制。

【样例解释 #3】

这个样例满足子任务 1,2,4,61, 2, 4, 6 的限制。

【样例解释 #4】

这个样例满足子任务 1,2,5,61, 2, 5, 6 的限制。


【数据范围】

本题采用捆绑测试。

对于 100%100 \% 的数据,2N1052 \le N \le {10}^51KN11 \le K \le N - 11M2×1051 \le M \le 2 \times {10}^51Q5×1041 \le Q \le 5 \times {10}^41Aj,Bj,Sk,TkN1 \le A_j, B_j, S_k, T_k \le NAjBjA_j \ne B_jSkTkS_k \ne T_k(Aj,Bj)(Ak,Bk)(A_j, B_j) \ne (A_k, B_k)jkj \ne k),(Sk,Tk)(Sl,Tl)(S_k, T_k) \ne (S_l, T_l)klk \ne l)。

  • 子任务 1188 分):N,M,Q300N, M, Q \le 300
  • 子任务 2288 分):N,M,Q2000N, M, Q \le 2000
  • 子任务 331111 分):Q=1Q = 1
  • 子任务 442525 分):K=N1K = N - 1
  • 子任务 553535 分):Aj<BjA_j < B_jSk<TkS_k < T_k
  • 子任务 661313 分):无特殊限制。

译自 JOI 2022 Final T4「鉄道旅行 2 / Railway Trip 2