小王是快樂國的國王。快樂國總共有 $N$ 個城鎮(城鎮編號為 $1, 2, 3, \dots, N$),並且有 $N - 1$ 條雙向道路連接著這些城鎮。每個城鎮都可以藉由這 $N - 1$ 條雙向道路到達其他所有的城鎮,而每條雙向道路的長度都是一公里。
現在,小王決定在 $M$ 個城鎮設置緊急避難所,這些城鎮的編號為 $a_1, a_2, \dots, a_M$。而決定好這些緊急避難所的位置後,小王決定算出,對於每個城鎮,該城鎮抵達最近的緊急避難所需要的距離。假設第 $i$ 個城鎮到達最近的緊急避難所需要 $h_i$ 公里,小王希望算出 $\sum_{i = 1}^ {N} h_i$ 的值(也就是所有 $h_i$ 的總和),來當作評估市政的參考。
只要進入到設置有緊急避難所的城鎮,就算成功進入緊急避難所,而如果該城鎮本來就有設置緊急避難所的話,那該城鎮的 $h_i$ 值為 $0$。
注意到 $\sum_{i = 1}^ {N} h_i$ 這個數字有可能超過 int
整數儲存的範圍!
輸入的第一行包含兩個正整數 $N, M$,分別代表快樂國的城鎮數量,以及緊急避難所的數量。
接下來的 $N - 1$ 行,每行包含兩個正整數 $u_i, v_i$,代表城鎮 $u_i$ 跟城鎮 $v_i$ 中間有一條長度為一公里的雙向道路連通。
接下來的一行,包含 $M$ 個正整數 $a_1, a_2, \dots, a_M$,代表有設置緊急避難所的城鎮編號。
輸出 $\sum_{i = 1}^ {N} h_i$ 於一行。
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~1 | 範例測資 | 0 |
2 | 2~16 | $M = 1, N \leq 1000$ | 20 |
3 | 0~34 | $M \leq 2$ | 30 |
4 | 0~52 | 無額外限制 | 50 |