AT_abc416_e [ABC416E] Development
Description
AtCoder 国には $ 1 $ から $ N $ の番号がついた $ N $ 個の街と、 $ M $ 本の道路、 $ K $ 個の空港があります。
$ i $ 番目の道路は街 $ A_i $ と街 $ B_i $ を双方向に結び、移動に $ C_i $ 時間かかります。
空港は街 $ D_1,\ldots,D_K $ にあり、空港がある街同士は $ T $ 時間で移動できます。
$ Q $ 個のクエリが与えられるので順に処理してください。クエリは次の $ 3 $ 種類のいずれかです。
- `1 x y t`: 街 $ x $ と街 $ y $ を双方向に $ t $ 時間で結ぶ道路が作られる。
- `2 x`: 街 $ x $ に空港が作られる。
- `3`: $ f(x,y) $ を、街 $ x $ から街 $ y $ へ道路と空港を使って到達可能なときその最短時間、到達不可能なとき $ 0 $ とする。 $ \sum_{x=1}^{N}\sum_{y=1}^{N}f(x,y) $ を求める。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_1 $ $ B_1 $ $ C_1 $ $ \vdots $ $ A_M $ $ B_M $ $ C_M $ $ K $ $ T $ $ D_1 $ $ \dots $ $ D_K $ $ Q $ $ \mathrm{Query}_1 $ $ \vdots $ $ \mathrm{Query}_Q $
$ \mathrm{Query}_i $ は $ i $ 番目のクエリを表し、その形式と意味は問題文中に与えられた通りである。
Output Format
$ 3 $ 種類目のクエリの解を順に改行区切りで出力せよ。
Explanation/Hint
### Sample Explanation 1
AtCoder 国には $ 4 $ つの街があり、最初、街 $ 1 $ と街 $ 2 $ の間を $ 10 $ 時間で移動できる道路と、街 $ 1 $ と街 $ 3 $ の間を $ 100 $ 時間で移動できる空港があります。
- 最初、 $ f(1,2)=f(2,1)=10, f(1,3)=f(3,1)=100,f(2,3)=f(3,2)=110 $ であり、その他は $ 0 $ なので、 $ \sum_{x=1}^{N}\sum_{y=1}^{N}f(x,y)=440 $ です。
- 新たに街 $ 2 $ と街 $ 3 $ を $ 60 $ 時間で結ぶ道路が作られました。
- $ f(1,2)=f(2,1)=10, f(1,3)=f(3,1)=70,f(2,3)=f(3,2)=60 $ であり、その他は $ 0 $ なので、 $ \sum_{x=1}^{N}\sum_{y=1}^{N}f(x,y)=280 $ です。
- 新たに街 $ 4 $ に空港ができました。
- $ f(1,2)=f(2,1)=10, f(1,3)=f(3,1)=70,f(1,4)=f(4,1)=100,f(2,3)=f(3,2)=60,f(2,4)=f(4,2)=110,f(3,4)=f(4,3)=100 $ であり、その他は $ 0 $ なので、 $ \sum_{x=1}^{N}\sum_{y=1}^{N}f(x,y)=900 $ です。
2つの街の間に複数の道路が作られることや、1つの街に複数の空港が作られることもあります。
### Constraints
- $ 1 \leq N \leq 500 $
- $ 0 \leq M \leq 10^5 $
- $ 1 \leq A_i < B_i \leq N $
- $ 1 \leq C_i \leq 10^9 $
- $ 0 \leq K \leq N $
- $ 1 \leq T \leq 10^9 $
- $ 1 \leq D_1 < \dots < D_K \leq N $
- $ 1 \leq Q \leq 1000 $
- $ 1 $ 種類目のクエリにおいて、 $ 1\leq x < y \leq N $ , $ 1 \leq t \leq 10^9 $
- $ 2 $ 種類目のクエリにおいて、 $ 1 \leq x \leq N $
- 入力は全て整数