푸앙이와 별
시간 제한3초메모리 제한512 MB
N개 정점의 완전 그래프에서 주어진 M개 간선을 지운 뒤, 정점 1에서 각 정점까지의 최단 거리를 구하고 도달할 수 없으면 -1을 출력한다.
문제
중앙대학교의 청룡 푸앙이는 자신만의 별을 가지고 있다. N개의 꼭짓점과 개의 간선으로 이루어진 별은 무방향 완전 그래프이기 때문에 아름다운 모양을 띤다.
푸앙이는 모든 꼭짓점 사이의 거리가 1이라는 사실에 매료되었다. 그러나 푸앙이를 싫어하는 명진이는 푸앙이의 별에서 간선 몇 개를 잘라버렸다. 푸앙이는 좌절했지만 새로운 별에서도 매력을 느끼기 위해 꼭짓점 사이의 거리를 계산하기로 했다. 푸앙이를 도와 꼭짓점 사이의 거리를 계산해주자!
입력
첫째 줄에 별을 이루는 꼭짓점의 개수 N(2 ≤ N ≤ 300,000)과 명진이가 간선을 자르는 연산을 수행한 횟수 M(1 ≤ M ≤ 300,000)이 주어진다.
이후 M개의 줄에 걸쳐 정수 Ai와 Bi(1 ≤ Ai, Bi ≤ N, Ai ≠ Bi)가 주어지며, 다음과 같은 의미를 가진다.
- Ai번과 Bi번 꼭짓점을 잇는 간선을 자른다. 그런 간선이 이미 잘려 있다면 무시한다.
출력
첫째 줄부터 N개의 줄에 걸쳐, i번 줄엔 1번 정점으로부터 i번 정점까지의 최단 거리를 출력한다. 경로가 존재하지 않는 경우에는 -1을 출력한다.
힌트
무방향 완전 그래프는 서로 다른 두 정점이 반드시 하나의 무방향 간선으로 연결되어 있는 그래프를 말한다.