728x90
https://www.acmicpc.net/problem/18352
18352๋ฒ: ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ
์ฒซ์งธ ์ค์ ๋์์ ๊ฐ์ N, ๋๋ก์ ๊ฐ์ M, ๊ฑฐ๋ฆฌ ์ ๋ณด K, ์ถ๋ฐ ๋์์ ๋ฒํธ X๊ฐ ์ฃผ์ด์ง๋ค. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฑธ์ณ์ ๋ ๊ฐ
www.acmicpc.net
๋ค์ต์คํธ๋ผ
import sys
import heapq
input = sys.stdin.readline
INF=int(1e9)
n, m, k, x = map(int,input().split())
graph=[[] for _ in range(n+1)]
distance=[INF]*(n+1)
for _ in range(m):
a, b = map(int,input().split())
graph[a].append((b,1))
def dijkstra(start):
distance[start]=0
q=[]
heapq.heappush(q,(0,start))
while q:
dist, now = heapq.heappop(q)
if distance[now] < dist:
continue
for i in graph[now]:
cost = dist+i[1]
if cost < distance[i[0]]:
distance[i[0]]=cost
heapq.heappush(q,(cost,i[0]))
dijkstra(x)
result=[]
for i in range(1,n+1):
if distance[i]==k:
result.append(i)
result.sort()
if len(result)>0:
for i in range(len(result)):
print(result[i])
else:
print(-1)
ํ์ด๋ฅ
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > Shortest Path' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]1753๋ฒ: ์ต๋จ๊ฒฝ๋ก (0) | 2023.02.28 |
---|---|
Floyd-Warshall ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ(python) (0) | 2023.02.28 |
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ (python) (0) | 2023.02.28 |
[์ด์ฝํ ]๋ฏธ๋ ๋์ (0) | 2023.02.27 |
[์ด์ฝํ ]์ ๋ณด (0) | 2023.02.27 |