Efterlyst | 프로그래밍의 벗 PivotOJ
PivotOJ

Efterlyst

시간 제한: 1000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2019 — lagerBOJ 20853

문제

Poliskonstapel Acsel behöver din hjälp med ett brådskande ärende, nämligen att fånga den farliga brottsligen Waxel. Waxel gömmer sig någonstans i en stad som består av NN olika platser, numrerade mellan 11 och NN, med MM dubbelriktade vägar som var och en ansluter två olika platser. Han befann sig länge på en viss plats XX (det är okänt vilken), men sedan så flyttade han sig till en annan plats YY (som vi inte heller känner till) genom att färdas längs en sekvens av vägar.

Polisen har samlat in KK stycken vittnesmål från personer som såg Waxel. Därför vet de att Waxel besökte platserna a1,a2,,aKa_1, a_2, \dots, a_K på vägen från XX till YY (det är även möjligt att ai=Xa_i = X eller ai=Ya_i = Y för något ii). Däremot vet de inte i vilken ordning platserna besöktes. Waxel kan dessutom ha besökt fler än dessa KK platser på vägen från XX till YY.

Din uppgift är nu att hjälpa polisen att hitta de platser som möjligtvis kan vara YY, under förutsättning att Waxel tog en kortaste sekvens av vägar (Detta innebär att summan av längderna av de vägar som Waxel färdades längs är så liten som möjligt.) från XX till YY. Det är möjligt att det inte finns några sådana platser alls, om vittnesmålen inte stämmer överens med någon kortaste väg.

입력

Den första raden innehåller tre heltal:

  • antalet platser i staden, NN (2N21052 \leq N \leq 2\cdot 10^5),
  • antalet vägar i staden, MM (1M21051 \leq M \leq 2 \cdot 10^5), och
  • antalet vittnesmål, KK (1KN1 \leq K \leq N).

Den andra raden innehåller de KK olika heltalen a1,,aKa_1, \dots, a_K (1aiN1 \leq a_i \leq N), de platser som Waxel besökte.

De MM följande raderna beskriver de olika vägarna i staden. Den ii:te raden innehåller de tre heltalen uiu_i, viv_i (1uiviN1 \leq u_i \not= v_i \le N) och wiw_i (1wi1091 \leq w_i \leq 10^9), vilket innebär att den ii:te vägen förbinder platserna uiu_i och viv_i och har längd wiw_i meter. Det är garanterat att det går att ta sig mellan vilka två platser som helst genom att färdas längs en sekvens av vägar och att det mellan varje par av platser finns högst en väg som förbinder platserna.

출력

På den första raden ska du skriva ut antalet noder som kan vara YY. Notera att detta tal kan vara 00.

På den andra raden ska du skriva ut samtliga noder som kan vara YY. Dessa ska skrivas ut separerade av blanksteg i ökande ordning.

힌트

I exempel 11 är platserna 1,2,4,51,2,4,5 möjliga mål för Waxel. För att komma till 22 hade han kunnat ta vägen 56125-6-1-2.

I exempel 22 finns det ingen kortaste väg som passerar de givna noderna. Svaret är alltså 00.

I exempel 33 finns det ganska många möjligheter. För att komma till 22 hade Waxel t.ex. kunnat ta vägen 6753126-7-5-3-1-2.

예제

예제 1

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

예제 2

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

예제 3

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

예제 4

입력
5 4 2
2 4
2 5 1
2 1 1
1 4 1
4 3 1
출력
4
2 3 4 5
코드를 제출하려면 로그인하세요.