숨바꼭질

면접 대비

시간 제한1초메모리 제한256 MB

요약
연결된 무향 그래프에서 1번 헛간에서 가장 먼 헛간을 찾는다. 가장 번호가 작은 헛간, 그 거리, 같은 거리의 헛간 개수를 출력한다.
난이도

보통10점 중 4점

유형
그래프, BFS, 큐, 최단 경로
정답자
아직 제출이 없습니다

문제

재서기는 수혀니와 교외 농장에서 숨바꼭질을 하고 있다. 농장에는 헛간이 여러 개 있으며, 재서기는 그 중 하나에 숨어야 한다. 헛간은 모두 NN개이고 11번부터 NN번까지 번호가 매겨져 있다 (2≤N≤20,0002 \le N \le 20{,}000).

재서기는 수혀니가 항상 11번 헛간부터 찾기 시작한다는 것을 알고 있다. 모든 헛간은 MM개의 양방향 길로 이어져 있으며 (1≤M≤50,0001 \le M \le 50{,}000), 각 길은 서로 다른 두 헛간 AiA_i와 BiB_i를 잇는다 (1≤Ai≤N1 \le A_i \le N, 1≤Bi≤N1 \le B_i \le N, Ai≠BiA_i \ne B_i). 어떤 헛간에서 출발하더라도 다른 모든 헛간에 반드시 도달할 수 있다.

재서기는 발 냄새가 지독하기 때문에 냄새가 최대한 나지 않는 곳에 숨으려고 한다. 냄새는 11번 헛간에서 멀어질수록 옅어지며, 여기서 거리란 두 헛간을 오갈 때 지나야 하는 길의 최소 개수를 뜻한다. 즉, 11번 헛간에서 가장 먼 헛간이 숨기에 가장 좋은 장소다. 재서기가 숨을 헛간을 찾을 수 있게 도와주자!

입력

첫째 줄에 헛간의 개수 NN과 길의 개수 MM이 공백으로 구분되어 주어진다.

이어지는 MM개의 줄에는 각 길이 잇는 두 헛간의 번호 AiA_i와 BiB_i가 공백으로 구분되어 주어진다.

출력

한 줄에 세 개의 값을 공백으로 구분하여 출력한다.

  • 첫 번째 값: 숨어야 하는 헛간의 번호 (11번 헛간에서의 거리가 가장 먼 헛간이며, 그러한 헛간이 여러 개라면 번호가 가장 작은 것을 출력한다).
  • 두 번째 값: 그 헛간까지의 거리.
  • 세 번째 값: 그 최대 거리와 같은 거리를 갖는 헛간의 개수.

힌트

아래는 농장의 조감도이다.

1--2--5
| /|
|/ |
3--4
|
6

헛간 44, 55, 66은 모두 11번 헛간에서의 거리가 22로 같다. 이 중에서 44번 헛간을 고르는 이유는 번호가 가장 작기 때문이다.

예제3

  1. 예제 1

    입력
    6 7
    3 6
    4 3
    3 2
    1 3
    1 2
    2 4
    5 2
    
    예상 출력
    4 2 3
    
  2. 예제 2

    입력
    2 1
    1 2
    
    예상 출력
    2 1 1
    
  3. 예제 3

    입력
    5 4
    1 2
    2 3
    3 4
    4 5
    
    예상 출력
    5 4 1