#1300
Silver I
알고리즘 수업 - 깊이 우선 탐색 1
시간 제한
1s
메모리 제한
512MB
제출
34
정답
13
맞힌 사람
13
정답 비율
38.2%

문제

NN개의 정점과 MM개의 간선으로 구성된 무방향 그래프가 주어집니다. 정점 번호는 1번부터 NN번까지이고, 모든 간선의 가중치는 1입니다.

시작 정점 RR에서 시작하여 깊이 우선 탐색(DFS)으로 그래프의 정점들을 방문할 때, 각 정점의 방문 순서를 구하는 프로그램을 작성하세요.

단, 인접한 정점들을 방문할 때는 정점 번호가 작은 것을 먼저 방문(오름차순 방문)해야 합니다.

입력

첫째 줄에 정점의 수 NN, 간선의 수 MM, 시작 정점 RR이 공백으로 구분되어 주어진다. (5N100,000;1M200,000;1RN)(5 \le N \le 100,000; 1 \le M \le 200,000; 1 \le R \le N)

다음 MM개의 줄 중 ii번째 줄에는 간선의 양 끝점 uiu_iviv_i가 공백으로 구분되어 주어진다. (1ui<viN)(1 \le u_i < v_i \le N)

모든 간선의 (ui,vi)(u_i, v_i) 쌍은 서로 다르며, 무방향 간선이다.

출력

첫째 줄부터 NN개의 줄에 걸쳐 정답을 출력한다. ii번째 줄에는 정점 ii의 방문 순서를 출력한다. 시작 정점 RR의 방문 순서는 1이다.

단, 시작 정점에서 방문할 수 없는 정점의 경우 0을 출력한다.

예제 입력 1

5 4 1
1 2
1 3
2 3
3 4

예제 출력 1

1
2
3
4
0

힌트

시작 정점은 1번이다. 1번 정점과 인접한 정점은 2번, 3번이다. 오름차순으로 2번을 먼저 방문한다(방문 순서 2). 2번 정점과 인접한 정점은 1번(방문됨), 3번이다. 3번을 방문한다(방문 순서 3). 3번 정점과 인접한 정점은 1번(방문됨), 2번(방문됨), 4번이다. 4번을 방문한다(방문 순서 4). 4번 정점은 더 이상 방문할 인접 정점이 없으므로 백트래킹한다. 모든 탐색을 마친 후에도 5번 정점은 도달할 수 없으므로 방문 순서는 0이 된다.

따라서 정점 1, 2, 3, 4, 5의 방문 순서는 각각 1, 2, 3, 4, 0이다.

문제를 만든 사람
표강준
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
8480🥇
짬뽕빵
C++35ms11196KB1004B
6445🥈
박지훈
C++37ms13500KB1036B
6396🥉
박준혁
C++57ms29628KB910B
64744
고수아
Python237ms47240KB647B
64435
이일우
PyPy244ms155712KB721B
64676
김현종
Python252ms47252KB720B
85187
강현욱
Python259ms50900KB702B
64038
박정현
Python271ms48832KB607B
64429
홍진영
PyPy285ms152308KB474B
633810
표강준
Python301ms47592KB1125B
646611
유혜윤
Python341ms47648KB691B
646512
이채환
Python382ms57432KB754B
645713
진원
Java555ms104768KB1627B
난이도 투표
Silver I5명 투표· 18일 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
8518
맞았습니다
Python259ms50900KB702B2026. 05. 28. 23:56
8517
런타임 에러
Python--649B2026. 05. 28. 23:54
8516
틀렸습니다
Python--590B2026. 05. 28. 23:50
8480
맞았습니다
C++35ms11196KB1004B2026. 05. 27. 07:16
8479
틀렸습니다
C++--1079B2026. 05. 27. 07:13
6474
맞았습니다
Python237ms47240KB647B2026. 05. 19. 11:31
6473
런타임 에러
Python--578B2026. 05. 19. 11:30
6471
틀렸습니다
Python--544B2026. 05. 19. 11:28
6470
틀렸습니다
Python--547B2026. 05. 19. 11:27
6469
틀렸습니다
Python--552B2026. 05. 19. 11:27
6467
맞았습니다
Python252ms47252KB720B2026. 05. 19. 11:23
6466
맞았습니다
Python341ms47648KB691B2026. 05. 19. 11:22
6465
맞았습니다
Python382ms57432KB754B2026. 05. 19. 11:20
6464
틀렸습니다
Python--647B2026. 05. 19. 11:19
6463
틀렸습니다
Python--752B2026. 05. 19. 11:19
6461
틀렸습니다
Python--398B2026. 05. 19. 11:18
6457
맞았습니다
Java555ms104768KB1627B2026. 05. 19. 11:17
6455
틀렸습니다
Java--1522B2026. 05. 19. 11:15
6454
틀렸습니다
Python--617B2026. 05. 19. 11:15
6452
틀렸습니다
Python--441B2026. 05. 19. 11:12