import sys
sys.setrecursionlimit(150000)
input = sys.stdin.readline
n,m,r = map(int, input().split())
graph = [[] for i in range(n+1)]
state = [0 for i in range(n+1)] # 방문 처리용
cnt=1 # 탐색 순서변수 cnt에 1을 할당
for i in range(m): # 무방향 그래프
u,v = map(int, input().split())
graph[v].append(u) # 왼쪽
graph[u].append(v) # 오른쪽
for j in graph:
j=sorted(j, reverse=True) # 내림차를 위해 Reverse
def recur(node):
global cnt # 함수 내에서 변수 활용을 위한 Global 선언
state[node] = cnt # cnt를 활용해 방문 순서를 저장
for nxt in sorted(graph[node], reverse=True):
if state[nxt]==0: # 방문하지 않은 노드라면?
cnt+=1 # 다음 호출 전 cnt에 1을 가산
recur(nxt)
recur(r) # 시작지점인 r부터 호출
for ans in range(1,len(state)): # 출력
print(state[ans])
댓글남기기