Dimension travel

Time Limit : 1 sec, Memory Limit : 262144 KB

D: 次元旅行

問題

次元が $1$ 次元から $N$ 次元まで存在する。 AORイカちゃんは次元間を移動できる。 具体的には、AORイカちゃんが $i$ 次元にいるとき、 $j$ 次元( $i > j$ )には自由に移動する事ができるが、 $k$ 次元( $i < k$ )に移動するには魔法を使う必要がある。

AORイカちゃんは $M$ 種類の魔法が使え、 $1, 2, \dots, M$ と番号が振られている。 $i$ 番目の魔法では $a_i$ 次元から $b_i$ 次元に移動できる。 これは $a_i$ 次元にいるときしか使えない。

$i$ 次元に行くと次元特有の「次元の呪い」を受ける。 $i$ 次元の「次元の呪い」により、AORイカちゃんは $d_i$ ダメージを負う。 $i$ 次元の「次元の呪い」を受けた場合、その後ずっと、 $j$ 次元( $i > j$ )の「次元の呪い」は受けない。

AORイカちゃんが $s$ 次元から $t$ 次元に移動するとき、 負うダメージの合計の最小値を求めよ。 ただし、AORイカちゃんは既に $s$ 次元の「次元の呪い」は受けており、そのダメージは考えないものとする。 また、AORイカちゃんは $t$ 次元に行けることが保証されている。

制約

  • $2 \leq N \leq 10^5$
  • $1 \leq M \leq min(10^5, N \times (N - 1) / 2)$
  • $1 \leq s, t \leq N$
  • $s \neq t$
  • $1 \leq d_i \leq 10^3$
  • $1 \leq a_i < b_i \leq N$
  • $i \neq j$ のとき $( a_i \neq a_j$ または $b_i \neq b_j )$ をみたす
  • 入力は全て整数で与えられる。

入力形式

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

$N \ M \ s \ t$
$d_1 \dots d_N$
$a_1 \ b_1$
$a_2 \ b_2$
$\vdots$
$a_M \ b_M$

出力

AORイカちゃんが受けるダメージの合計の最小値を出力せよ。また、末尾に改行も出力せよ。

サンプル

サンプル入力 1

3 1 2 3
1 2 3
1 3

サンプル出力 1

3

サンプル入力 2

3 2 1 2
1 3 2
1 2
1 3

サンプル出力 2

2

サンプル入力 3

7 5 2 3
277 390 2 784 401 641 917
2 5
5 6
1 5
2 4
5 7

サンプル出力 3

401

Note

Commentary
 
Source: Aizu Competitive Programming Camp 2017 Day1 , Japan, 2017-09-18