atcoder#ABC254G. [ABC254G] Elevators

[ABC254G] Elevators

题目描述

N N 棟の 109 10^9 階建てのビルからなる建物があります。ビルには 1 1 から N N の番号がついています。

任意の異なるビルの同じ階は連絡通路で結ばれているため 1 1 分で移動可能です。

また、M M 基のエレベーターがあります。i i 個目のエレベーターはビル Ai A_i Bi B_i 階から Ci C_i 階を結ぶものです。このエレベーターを使うと、Bi  x,y  Ci B_i\ \le\ x,y\ \le\ C_i を満たす全ての整数の組 x,y x,y に対し、ビル Ai A_i x x 階から y y 階に xy |x-y| 分で移動することができます。

以下の Q Q 個のクエリに答えてください。

  • ビル Xi X_i Yi Y_i 階からビル Zi Z_i Wi W_i 階に移動することが可能か判定し、可能な場合は移動時間の最小値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M Q Q A1 A_1 B1 B_1 C1 C_1 A2 A_2 B2 B_2 C2 C_2 \vdots AM A_M BM B_M CM C_M query1 \mathrm{query}_1 query2 \mathrm{query}_2 \vdots queryQ \mathrm{query}_Q

各クエリは以下の形式で与えられる。

Xi X_i Yi Y_i Zi Z_i Wi W_i

输出格式

Q Q 行出力せよ。i i 行目には queryi \mathrm{query}_i について、移動することが不可能であれば -1 を、そうでないならば移動時間の最小値を出力せよ。

题目大意

有一个由 nn 栋大楼组成的建筑群,编号为1,2,,n1,2, \dots ,n

从任意一栋大楼的某一层,可以使用天桥到达任意一栋楼的同一层,耗时只需要 11 分钟。

另外有 mm 个电梯,第 ii 部电梯在摩天大楼 aia_ibib_i 层到 cic_i 层这一段运行,这中间的任意一层都能到。比如当前在 xx 层,要去往 yy 层,要求 bix,ycib_i \leq x,y \leq c_i,耗时为 xy\lvert x-y \rvert

回答 qq 个询问:

  • 求能否从第 xix_i 栋楼的第 yiy_i 层到达第 ziz_i 栋楼的第 wiw_i 层,如果可以,输出最短需要的时间。
3 4 3
1 2 10
2 3 7
3 9 14
3 1 3
1 3 3 14
3 1 2 7
1 100 1 101
12
7
-1
1 1 1
1 1 2
1 1 1 2
1

提示

制約

  • 1  N,M,Q  2 × 105 1\ \le\ N,M,Q\ \le\ 2\ \times\ 10^5
  • 1  Ai  N 1\ \le\ A_i\ \le\ N
  • 1  Bi < Ci  109 1\ \le\ B_i\ <\ C_i\ \le\ 10^9
  • 1  Xi,Zi  N 1\ \le\ X_i,Z_i\ \le\ N
  • 1  Yi,Wi  109 1\ \le\ Y_i,W_i\ \le\ 10^9
  • 入力はすべて整数である。

Sample Explanation 1

1 1 番目のクエリについては、以下のようにすることで 12 12 分で移動が可能です。 - エレベーター 1 1 を使い、ビル 1 1 3 3 階から 9 9 階へ移動する。この移動には 6 6 分かかる。 - 9 9 階の連絡通路を使い、ビル 1 1 からビル 3 3 へ移動する。この移動には 1 1 分かかる。 - エレベーター 3 3 を使い、ビル 3 3 9 9 階から 14 14 階で移動する。この移動には 5 5 分かかる。 また、3 3 番目のクエリについては、移動することが不可能であるため -1 を出力します。