E - ダンジョン 3 (Dungeon 3) Editorial

Time Limit: 3 sec / Memory Limit: 512 MB

配点: 100100

N+1N+1 層からなるダンジョンがあり,ダンジョン内には MM 人のプレイヤーがいる.ダンジョンの階層には入口から近い順に第 11 層から第 N+1N+1 層までの番号が付いている.また,プレイヤーには 11 から MM までの番号が付いている.

ダンジョンのある階層から次の階層へ進むには体力を要する.プレイヤーは,第 ii 層 (1iN1 \leqq i \leqq N) から第 i+1i + 1 層に進む際に体力を AiA_i 消費する.また,このダンジョンは一方通行であり,可能な階層間の移動は第 ii 層 (1iN1 \leqq i \leqq N) から第 i+1i + 1 層への移動のみである.

11 層から第 NN 層までの各階層には 11 つの回復の泉がある.第 ii 層 (1iN1 \leqq i \leqq N) にある回復の泉では,プレイヤーは BiB_i 枚のコインを消費することで体力を 11 回復させることができる.回復の泉は,コインがある限り何回でも使用することができる.ただし,プレイヤーの体力には上限があり,回復の泉を使っても,体力がその上限を超えることはない.

プレイヤー jj (1jM1 \leqq j \leqq M) は現在第 SjS_j 層にいる.現在の体力は 00 であり,体力の上限は UjU_j である.プレイヤー jj は,体力を 00 未満にすることなく第 TjT_j 層まで進もうとしている.そのためには何枚のコインが必要であろうか.

ダンジョンの情報と各プレイヤーの情報が与えられたとき,各プレイヤーが体力を 00 未満にせずに目標の階層まで進むことが可能かを判定し,可能な場合には必要なコインの枚数の最小値を求めるプログラムを作成せよ.


入力

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

NN MM
A1A_1 \cdots ANA_N
B1B_1 \cdots BNB_N
S1S_1 T1T_1 U1U_1
\vdots
SMS_M TMT_M UMU_M

出力

標準出力に MM 行で出力せよ.第 jj 行目 (1jM1 \leqq j \leqq M) にはプレイヤー jj が第 TjT_j 層まで進むために必要なコインの枚数の最小値を出力せよ.ただし,プレイヤー jj が第 TjT_j 層まで進むことができない場合は 1-1 を出力せよ.


制約

  • 1N2000001 \leqq N \leqq 200\,000
  • 1M2000001 \leqq M \leqq 200\,000
  • 1Ai2000001 \leqq A_i \leqq 200\,000 (1iN1 \leqq i \leqq N).
  • 1Bi2000001 \leqq B_i \leqq 200\,000 (1iN1 \leqq i \leqq N).
  • 1Sj<TjN+11 \leqq S_j < T_j \leqq N+1 (1jM1 \leqq j \leqq M).
  • 1Uj1000000001 \leqq U_j \leqq 100\,000\,000 (1jM1 \leqq j \leqq M).

小課題

  1. (1111 点) N3000N \leqq 3\,000M3000M \leqq 3\,000
  2. (1414 点) U1=U2==UMU_1 = U_2 = \cdots = U_M
  3. (3131 点) Tj=N+1T_j = N+1 (1jM1 \leqq j \leqq M).
  4. (4444 点) 追加の制約はない.

入力例 1Copy

Copy
5 4
3 4 1 1 4
2 5 1 2 1
1 6 3
1 6 4
3 5 1
2 5 9

出力例 1Copy

Copy
-1
29
3
22

プレイヤー 11 は,体力の上限が 33 であるため,第 22 層から第 33 層へ進むことができない.そのため,11 行目の出力は 1-1 となる.

一方で,プレイヤー 22 は体力の上限が 44 であるため,以下のようにして第 66 層まで進むことができる.

  • 11 層でコインを 88 枚使って体力を 44 にし,第 22 層に進む.このとき,体力は 11 となる.
  • 22 層でコインを 1515 枚使って体力を 44 にし,第 33 層に進む.このとき,体力は 00 となる.
  • 33 層でコインを 44 枚使って体力を 44 にし,第 44 層に進む.このとき,体力は 33 となる.
  • 44 層ではコインを使わずに,第 55 層に進む.このとき,体力は 22 となる.
  • 55 層でコインを 22 枚使って体力を 44 にし,第 66 層に進む.このとき,体力は 00 となる.

合計 2929 枚のコインを使う.2929 枚未満のコインで第 66 層まで進むことはできないので,22 行目の出力は 2929 となる.


入力例 2Copy

Copy
10 10
1 8 9 8 1 5 7 10 6 6
10 10 2 8 10 3 9 8 3 7
2 11 28
5 11 28
7 11 28
1 11 18
3 11 18
8 11 18
4 11 11
6 11 11
10 11 11
9 11 5

出力例 2Copy

Copy
208
112
179
248
158
116
234
162
42
-1

この入力例は小課題 33 の制約を満たしている.


入力例 3Copy

Copy
20 20
2 3 2 11 4 6 9 15 17 14 8 17 3 12 20 4 19 8 4 5
19 3 18 2 13 7 5 19 10 1 12 8 1 15 20 1 13 2 18 6
12 15 67
7 15 18
16 17 14
9 21 97
1 19 43
3 18 31
16 20 70
7 20 28
1 16 61
3 5 69
9 10 15
2 13 134
11 19 23
16 20 14
5 21 16
15 20 11
7 11 54
7 16 16
13 17 10
3 15 135

出力例 3Copy

Copy
151
591
4
284
339
517
35
581
254
58
-1
178
519
-1
-1
-1
219
-1
-1
214

Source Name

JOI 2020/2021 本選 問題5


2025-04-11 (Fri)
10:23:36 +00:00