atcoder#S8PC4F. Find the Route!

Find the Route!

题目描述

配点: 1150 1150
H × W H\ \times\ W のグリッドがあります。左上の座標は(1,1) (1,1) で、右下の座標は(H,W) (H,W) です。
N N 個のマスからは矢印が引かれており、座標(ai,bi) (a_i,b_i) から出ている矢印の先は、方向ci c_i に、距離di d_i 飛んだ場所、となっています。
また、同じマスから複数の矢印が出ていることはありません。

そこで、E869120は座標(sx,sy) (sx,sy) から(gx,gy) (gx,gy) へ矢印のみをたどって行きたいと思っています。
しかし、今の盤面だとゴールまで行けない場合があります。
そこで、E869120はグリッドを変えることにしました。しかし、グリッドを変えるのにはコストがかかります。

彼は、各矢印の方向や向きを以下のように変えることができる。

  • 方向ci c_i を変えるのにコストei e_i かかる。
  • ・距離 di d_i の値を G G に変えるのに fdiG f*|d_i-G| かかる。ただし、p |p| p p の絶対値。(di d_i は負の値も取りうる。また、f f はどの矢印についても共通の値である)
  • ただし、di d_i の値を負にしてもよい。その場合、その矢印は逆向きになり、矢印の大きさは di |d_i| となる。

そのとき、スタートからゴールまで矢印のみをたどって行けるような盤面にするための、最小コストを求めてください。
ただし、矢印は一方通行であり、矢印の途中で曲がったりすることはできないとします。

ただし、グリッドを変えてもゴールにたどり着けない場合、「-1」と出力すること。

注意:ここでいう座標系は、(p1,p2)という形で表され、p1 p1 が小さい方が北側、p2 p2 が小さい方が左側(西側)である。

输入格式

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

H H W W N N f f sx sx sy sy gx gx gy gy a1 a_1 b1 b_1 c1 c_1 d1 d_1 e1 e_1 a2 a_2 b2 b_2 c2 c_2 d2 d_2 e2 e_2 : : : aN a_N bN b_N cN c_N dN d_N eN e_N

输出格式

スタートからゴールにたどり着くための、矢印を変えるコストの合計を最小値を1行に出力しなさい。
また、最後には改行を入れること。

4 4 2 2
1 1 2 2
1 1 E 1 1
1 2 E 2 2
4
1 4 2 10
1 1 1 4
1 1 E 1 4
1 3 W 1 4
14
1 8 4 9
1 3 1 6
1 1 E 7 2
1 8 W 7 5
1 3 W 2 5
1 6 E 2 8
14

14

提示

制約

  • 1  H,W  100000 1\ \le\ H,W\ \le\ 100000
  • 1  N  70000 1\ \le\ N\ \le\ 70000
  • 1  f,ei  1000000 1\ \le\ f,e_i\ \le\ 1000000
  • 1  di  100000 1\ \le\ d_i\ \le\ 100000
  • 1  ai,sx,tx  H 1\ \le\ a_i,sx,tx\ \le\ H
  • 1  bi,sy,ty  W 1\ \le\ b_i,sy,ty\ \le\ W
  • ci c_i N,E,S,Wのどれかである。Nは上方向、Eは東方向。

小課題

小課題1 [ 190 190 点 ]

  • H=1を満たす。
  • W≦600を満たす。

小課題2 [ 170 170 点 ]

  • H,W≦80を満たす。

小課題3 [ 360 360 点 ]

  • H,W≦600を満たす。

小課題4 [ 430 430 点 ]

  • 追加の制約はない。