Ekorren i trädet | 프로그래밍의 벗 PivotOJ
PivotOJ

Ekorren i trädet

시간 제한: 4000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2021 — finalBOJ 21368

문제

En ekorre bor i ett träd med NN noder och N1N-1 kanter. Varje kant har längd 1 och kopplar ihop två noder. I några av noderna har ekorren gömt nötter, som han nu vill samla in. Om ekorren börjar vid nod 1 (roten av trädet), vad är kortaste avståndet han behöver gå för att hämta alla nötter och återvända till nod 1? Ekorren kan bära flera nötter samtidigt.

Det är garanterat att man kan ta sig mellan alla par av noder genom att gå via en sekvens av kanter.

입력

Den första raden innehåller två heltal NN och KK (1KN1000001 \le K\le N \le 100\,000) -- antal noder i trädet och antal noder med nötter på. Den andra raden innehåller KK unika heltal -- noderna där ekorren har gömt nötter. Noderna är indexerade 1 till NN. Därefter följer N1N-1 rader. Varje rad innehåller två heltal 1a,bN1 \le a,b \le N som betyder att det går en kant mellan nod aa och nod bb.

출력

Skriv ut ett heltal -- det kortaste avståndet ekorren behöver gå för att hämta alla nötter.

예제

예제 1

입력
5 2
4 5
1 2
2 3
2 4
1 5
출력
6

예제 2

입력
10 4
5 4 8 6
2 7
1 2
4 2
2 5
5 3
5 10
6 7
8 4
9 4
출력
12
코드를 제출하려면 로그인하세요.