RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R03342

Tree Parent and Depth

Silver III 실버 III
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

N개의 정점으로 이루어진 트리가 주어진다. 트리의 루트 노드는 항상 1번 노드이다.

이때, 1번 노드를 루트로 하여 트리를 구성했을 때, 1번 노드부터 N번 노드까지 각 노드의 "부모 노드의 번호"와 "노드의 깊이(Depth)"를 구하는 프로그램을 작성하시오.

노드의 깊이란 루트 노드에서 해당 노드까지 도달하기 위해 거쳐야 하는 간선의 개수를 의미합니다. 루트 노드(1번)의 깊이는 0입니다.

입력

첫째 줄에 트리의 정점의 개수 N이 주어진다. (1 ≤ N ≤ 100,000)

다음 N-1개의 줄에는 트리의 연결 상태를 나타내는 두 정수 u와 v가 공백을 사이에 두고 주어진다.

이는 u번 노드와 v번 노드가 간선으로 연결되어 있음을 의미한다. (무방향 간선)

출력

출력은 총 N개의 줄로 이루어진다.

i번째 줄(1 ≤ i ≤ N)에는 i번 노드의 부모 노드 번호와 i번 노드의 깊이를 공백으로 구분하여 출력한다.

단, 루트 노드(1번 노드)는 부모가 없으므로 부모 번호 자리에 0을 출력한다.

제약 조건
  • 1 ≤ N ≤ 100,000

  • 1 ≤ u, v ≤ N, u ≠ v

  • 주어지는 그래프는 항상 올바른 트리 구조임이 보장된다.

제약
입력 형식

First line \(N\) (\(1 \le N \le 100000\)); then \(N-1\) undirected edge lines \(u\), \(v\) (\(u \ne v\)).

출력 형식

Print \(N\) lines; line \(i\) is node \(i\)'s parent and depth.

예제 1
입력
6
1 2
1 3
2 4
2 5
4 6
출력
0 0
1 1
1 1
2 2
2 2
4 3
문제 정보

riseoj 작성

출처 Online Judge > GoldOJ

평가 및 의견

Tree Parent and Depth

개요
출제자 난이도 Silver III 실버 III 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Tree Parent and Depth

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8