atcoder#ABC254G. [ABC254G] Elevators

[ABC254G] Elevators

配点 : 600600

問題文

NN 棟の 10910^9 階建てのビルからなる建物があります。ビルには 11 から NN の番号がついています。

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

また、MM 基のエレベーターがあります。ii 個目のエレベーターはビル AiA_iBiB_i 階から CiC_i 階を結ぶものです。このエレベーターを使うと、Bix,yCiB_i \le x,y \le C_i を満たす全ての整数の組 x,yx,y に対し、ビル AiA_ixx 階から yy 階に xy|x-y| 分で移動することができます。

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

  • ビル XiX_iYiY_i 階からビル ZiZ_iWiW_i 階に移動することが可能か判定し、可能な場合は移動時間の最小値を求めてください。

制約

  • 1N,M,Q2×1051 \le N,M,Q \le 2 \times 10^5
  • 1AiN1 \le A_i \le N
  • 1Bi<Ci1091 \le B_i < C_i \le 10^9
  • 1Xi,ZiN1 \le X_i,Z_i \le N
  • 1Yi,Wi1091 \le Y_i,W_i \le 10^9
  • 入力はすべて整数である。

入力

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

NN MM QQ

A1A_1 B1B_1 C1C_1

A2A_2 B2B_2 C2C_2

\vdots

AMA_M BMB_M CMC_M

query1\mathrm{query}_1

query2\mathrm{query}_2

\vdots

queryQ\mathrm{query}_Q

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

XiX_i YiY_i ZiZ_i WiW_i

出力

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

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

11 番目のクエリについては、以下のようにすることで 1212 分で移動が可能です。

  • エレベーター 11 を使い、ビル 1133 階から 99 階へ移動する。この移動には 66 分かかる。
  • 99 階の連絡通路を使い、ビル 11 からビル 33 へ移動する。この移動には 11 分かかる。
  • エレベーター 33 を使い、ビル 3399 階から 1414 階で移動する。この移動には 55 分かかる。

また、33 番目のクエリについては、移動することが不可能であるため -1 を出力します。

1 1 1
1 1 2
1 1 1 2
1