YTP 島國有 $n$ 個島嶼,且有 $m$ 條雙向邊連接島嶼,其中第 $i$ 條邊連接第 $u_i$ 個島嶼與第 $v_i$ 個島嶼,且沒有重邊與自環。另外,有 $k$ 個特殊島嶼,若你當前所在的島嶼為特殊島嶼時,你可以選擇要不要按下島嶼上面的按鈕,按下按鈕之後原本有邊連接的島嶼會變成沒有邊連接,沒有邊的會變成有邊。
舉例來說,當 $n = 4$ 且原本島嶼 $(1, 2), (2, 3), (3, 4)$ 有邊連接,按下按鈕後會變成 $(1, 3), (2, 4), (1, 4)$ 有邊。
現在你想要從第 $1$ 個島嶼移動到第 $n$ 個島嶼,請問你最少需要經過幾條邊。
輸入第一行有三個整數 $n, m, k$,代表島嶼的數量、一開始無向邊的數量以及特殊島嶼的數量。
接下來 $m$ 行,第 $i$ 行有兩個正整數 $u_i, v_i$,代表第 $i$ 條邊連接第 $u_i$ 個島嶼和第 $v_i$ 個島嶼。
接下來 $k$ 行,第 $i$ 行有一個正整數 $x_i$,代表第 $i$ 個特殊島嶼是第 $x_i$ 個島嶼。
若無法從第 $1$ 個島嶼移動到第 $n$ 個島嶼,則輸出 -1,否則輸出最少需要經過幾條邊。
5 6 1 1 2 2 3 3 5 1 3 1 4 3 4 4
2
127 1 0 42 87
-1
範測 1 解釋:
若移動順序為 $1 \to 3 \to 5$,只需要經過 $2$ 條邊。可以證明沒有比這更好的移動方式。
範測 2 解釋:
當你位於第 $1$ 個島嶼時,顯然你不能移動到任何其他島嶼,因此無法抵達島嶼 $n$。
2026 YTP 國中組決賽 p7
| No. | Testdata Range | Constraints | Score |
|---|---|---|---|
| 1 | 0~1 | 範例測試資料 | 0 |
| 2 | 2~11 | $k = 0$ | 4 |
| 3 | 0~31 | 無額外限制 | 16 |