페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#4678

미로 탐색 2 5s 256MB

문제

승태는 "1912번:미로 탐색" 문제를 풀다가 입력데이터로 만들어 본 미로를 실제로 탐색해보고 싶어서

본인의 입력데이터를 기반으로 만든 미로에 들어갔다.

 

그런데 몇번 걸어다니다 보니 다리가 너무 아파서 미로 탐색작업을 중단하기로 했다.

너무 복잡한 미로에 화가 난 다혈질 승태는 미로를 폭파시켜버리기로 했다.

 

승태는 다이너마이트를 하나 가지고 있는데, 다이너마이트를 입구인 1번 방에 장치시키고 가동시키려고 한다.

가동된 다이너마이트는 폭파력이 너무 커서 연결된 모든 방을 파괴시키는데, 

1번 방부터 시작해서 가까운 방 순서대로 연쇄적으로 파괴하게 된다.

 

예를 들어 "1912번: 미로 탐색" 문제의 예제였던 아래 그림과 같은미로의 경우에는, 

(설명을 위해 1-4번 방의 통로를 없앴다.)

폭파가 시작되자마자 1번 방이 파괴되고,

직접적으로 연결된 2번과 3번 방이 동시에 파괴되며,

그 다음 2번과 3번에 연결된 4번 방이 파괴되고,

마지막으로 4번에 연결된 5번 방이 파괴된다.

 

미로의 구조가 주어졌을 때, 화가 난 승태가 다이너마이트를 가동시킨 후,

폭파되는 방의 번호를 순서대로 출력하는 프로그램을 작성하라.​ 


입력

입력 형식은 1912번:미로 탐색과 동일하다.

 

첫 줄에 N과 M이 공백으로 분리되어 주어진다.

N은 방의 수이고, M은 통로의 수이다.

다음 M줄에 걸쳐, 두 방의 번호가 공백으로 분리되어 주어지는데,

이는 주어진 두 방이 서로 연결되어 있다는 뜻이다.

 

제약조건

 

모든 입력값은 양의 정수이다.

1) N≤1,000, M≤30,000 인 경우에 잘 작동하는 프로그램을 작성하면: 50점

2) N≤​20,000 , M≤​80,000 인 경우에 잘 작동하는 프로그램을 작성하면: 100점


출력

다이너마이트에 의해 폭파되는 방의 번호를 시간 순서대로 출력하라.

 

※중요 : "동시에 폭파되는" 방의 경우, 번호가 작은 방이 미세한 시간차로 먼저 폭발한다고 생각한다. 


예제

5 5

1 3
3 4
4 2
2 1
4 5
1 2 3 4 5

출처

ohjtgood

로그인해야 코드를 작성할 수 있어요.