#lg14387. [JOISC 2017] 火车旅行 / Railway Trip

[JOISC 2017] 火车旅行 / Railway Trip

[AdditionalFile2395.zip](file://AdditionalFile2395.zip?type=additional_file)

#2395. 「JOISC 2017 Day 2」火车旅行

标签: 传统 | 时间限制: 2000 ms | 内存限制: 512 MiB |

题目描述

题目译自 JOISC 2017 Day2 T3「鉄道旅行 / Railway Trip

某条铁路线(非环线)有 NN 站,依次编号为 1N1\ldots N。这条线路上跑着 KK 类列车,编号为 1K1\ldots K。每种列车都是双向运行的。
这条铁路线上的每个车站都有个旅客流量,旅客流量是一个 K\le K 的正整数。车站 i(1iN)i(1\le i\le N) 的旅客流量为 LiL_iL1=LN=KL_1=L_N=K
jj 类列车 (1jK)(1\le j\le K) 在且只在旅客流量 j\ge j 的车站停车。 现有 QQ 名旅客,依次编号为 1Q1\ldots Q,旅客 k(1kQ)k(1\le k\le Q) 的起点是车站 AkA_k,终点是 BkB_k (1Ak,BkN)(1\le A_k, B_k\le N)。假设这些旅客只能靠这条铁路线移动。
对于每个旅客,求这名旅客的途中至少要停几次站(不含该旅客的起终点站)。保证同一名旅客的起点与终点不同。允许走回头路。

输入格式

第一行有三个整数 N,K,QN, K, Q,用空格分隔。
在接下来的 NN 行中,第 ii(1iN)(1\le i\le N) 有一个整数 LiL_i
在接下来的 QQ 行中,第 kk(1kQ)(1\le k\le Q) 有两个整数 Ak,BkA_k,B_k

输出格式

输出共 QQ 行,每行一个整数,表示旅客 kk 最少的停站次数。

样例 1

输入

9 3 3
3
1
1
1
2
2
2
3
3
2 4
4 9
6 7

输出

1
3
0

旅客 11 从车站 22 出发,可以直接坐 11 类车抵达车站 44。中途站只有车站 33。 旅客 22 从车站 44 出发,可以先坐 11 类车到车站 55,再换乘 22 类车坐到车站 11,再换乘 33 类车坐到车站 99。中途站为车站 5,1,85,1,8。 旅客 33 从车站 66 出发,直接坐 11 类车抵达车站 77

样例 2

输入

5 2 1
2
1
1
1
2
1 4

输出

1

注意可以走过目的地,再走回来。

样例 3

输入

15 5 15
5
4
1
2
3
1
1
2
4
5
4
1
5
3
5
8 1
11 1
5 3
6 11
9 12
15 14
15 2
3 12
2 1
4 8
15 5
12 6
1 13
13 8
14 9

输出

2
1
1
3
2
0
3
4
0
1
3
4
1
2
2

数据范围与提示

对于所有数据,$2\le N\le 10^5, 1\le K\le N, 1\le Q\le 10^5, 1\le L_i\le K(1\le i\le N), 1\le A_k, B_k\le N, A_k\not=B_k(1\le k\le Q)$。

Subtask # 分值 NN KK QQ
1 5 N100N\le 100 K100K\le 100 Q50Q\le 50
2 15
3 25 K20K\le 20
4 55

表格中留空的均无特殊限制。