#P15816. [JOI 2015 Final] 鉄道旅行

[JOI 2015 Final] 鉄道旅行

Description

JOI 国には NN 個の都市があり,それぞれ 1,2,,N1,2,\dots,N の番号が付けられている.また,鉄道が N1N-1 本あり,それぞれ 1,2,,N11,2,\dots,N-1 の番号が付けられている.鉄道 ii (1iN11 \le i \le N-1) は,都市 ii と都市 i+1i+1 を双方向に結んでいる.

JOI 国の鉄道に乗車する方法として,紙の切符で乗車する方法と,IC カードで乗車する方法がある.

  • 鉄道 ii に紙の切符で乗車する場合の運賃は AiA_i 円である.
  • 鉄道 ii に IC カードで乗車する場合の運賃は BiB_i 円である.ただし,IC カードで鉄道 ii に乗車するには,鉄道 ii で使える IC カードを事前に購入しておく必要がある.鉄道 ii で使える IC カードを購入するには CiC_i 円かかる.一度購入した IC カードは,何度でも使用することができる.

IC カードの方が金額の処理が簡単になるため,IC カードで乗車する場合の運賃の方が紙の切符で乗車する場合の運賃よりも安い.すなわち,i=1,2,,N1i=1,2,\dots,N-1 に対して,Ai>BiA_i > B_i が成り立つ.IC カードの仕様は鉄道ごとにすべて異なるため,どの ii に対しても,鉄道 ii で使える IC カードを他の鉄道で使用することはできない.

あなたは,JOI 国じゅうを旅行することにした.都市 P1P_1 から出発し,P2,P3,,PMP_2,P_3,\dots,P_M の順に都市を訪れる予定である.旅行は M1M-1 日間の行程からなる.jj 日目 (1jM11 \le j \le M-1) に都市 PjP_j から都市 Pj+1P_{j+1} に鉄道で移動する.この際,いくつかの鉄道を乗り継いで移動することもある.また,同じ都市を二度以上訪れることがあるかもしれない.JOI 国の鉄道は速いので,どの都市からどの都市へも 1 日で移動することができる.

あなたは現在,どの鉄道の IC カードも持っていない.あなたは,あらかじめ,いくつかの鉄道の IC カードを購入し,この旅行にかかる金額,すなわち,IC カード購入費用と乗車した鉄道の運賃の和をできるだけ少なくしたい.

課題

JOI 国の都市の数,旅行の行程,および JOI 国のそれぞれの鉄道の運賃と IC カードの価格が与えられる.このとき,旅行にかかる金額の最小値を求めるプログラムを作成せよ.

Input Format

標準入力から以下のデータを読み込め.

  • 1 行目には,整数 N,MN, M が空白を区切りとして書かれている.これらはそれぞれ,JOI 国に都市が NN 個あり,旅行が M1M-1 日間の行程からなることを表す.
  • 2 行目には,MM 個の整数 P1,P2,,PMP_1, P_2, \dots, P_M が空白を区切りとして書かれている.これらは,jj 日目 (1jM11 \le j \le M-1) に都市 PjP_j から都市 Pj+1P_{j+1} に鉄道で移動することを表す.
  • 続く N1N-1 行のうちの ii 行目 (1iN11 \le i \le N-1) には,3 つの整数 Ai,Bi,CiA_i, B_i, C_i が空白を区切りとして書かれている.これらはそれぞれ,鉄道 ii に紙の切符で乗車したときの運賃が AiA_i 円,IC カードで乗車したときの運賃が BiB_i 円,鉄道 ii で使える IC カードの金額が CiC_i 円であることを表す.

Output Format

標準出力に,旅行にかかる金額の最小値を円単位で表す整数を 1 行で出力せよ.

4 4
1 3 2 4
120 90 100
110 50 80
250 70 130
550
8 5
7 5 3 5 4
12 5 8
16 2 1
3 1 5
17 12 17
19 7 5
12 2 19
4 1 3
81

Hint

入出力例 1

この場合,旅行にかかる金額を最小にする方法は以下のとおりである.

  • 鉄道 2 と鉄道 3 の IC カードを購入する.これには 80+130=21080 + 130 = 210 円かかる.
  • 1 日目に,都市 1 から都市 2 まで紙の切符を使って移動し,次に都市 2 から都市 3 まで IC カードを使って移動する.これには 120+50=170120 + 50 = 170 円かかる.
  • 2 日目に,都市 3 から都市 2 まで IC カードを使って移動する.これには 5050 円かかる.
  • 3 日目に,都市 2 から都市 3 まで IC カードを使って移動し,次に都市 3 から都市 4 まで IC カードを使って移動する.これには 50+70=12050 + 70 = 120 円かかる.

このように移動すると,旅行にかかる金額の合計は 210+170+50+120=550210 + 170 + 50 + 120 = 550 円となる.これが最小であるので,550550 と出力する.

制限

すべての入力データは以下の条件を満たす.

  • 2N1000002 \le N \le 100\,000
  • 2M1000002 \le M \le 100\,000
  • 1Bi<Ai1000001 \le B_i < A_i \le 100\,000 (1iN11 \le i \le N-1).
  • 1Ci1000001 \le C_i \le 100\,000 (1iN11 \le i \le N-1).
  • 1PjN1 \le P_j \le N (1jM1 \le j \le M).
  • PjPj+1P_j \ne P_{j+1} (1jM11 \le j \le M-1).

小課題

小課題 1 [20 点]

以下の条件を満たす.

  • 2N10002 \le N \le 1000
  • M=2M = 2
  • 1Bi<Ai10001 \le B_i < A_i \le 1000 (1iN11 \le i \le N-1).
  • 1Ci10001 \le C_i \le 1000 (1iN11 \le i \le N-1).

小課題 2 [30 点]

以下の条件を満たす.

  • 2N10002 \le N \le 1000
  • 2M10002 \le M \le 1000
  • 1Bi<Ai10001 \le B_i < A_i \le 1000 (1iN11 \le i \le N-1).
  • 1Ci10001 \le C_i \le 1000 (1iN11 \le i \le N-1).

小課題 3 [50 点]

追加の制限はない.