| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 477 | 118 | 60 | 17.094% |
$N$개의 정점으로 이루어진 트리가 있다. 르블랑은 이 트리를 순회하려고 한다.
임의의 정점에서 출발해 유한 번의 행동으로 모든 간선을 정확히 한 번씩 방문하는 과정을 "적절한 순회"라고 한다. 르블랑은 정점 위에 있을 때마다 다음의 다섯 가지 행동 중 하나를 할 수 있다.
위 그림들은 각각 예제 1과 예제 2의 적절한 순회 방법 중 하나이다.
처음에 트리에는 어떠한 체크포인트도 없다.
르블랑이 시작 정점을 잘 고르고 최적으로 행동한다면 적절한 순회를 할 수 있는지 알아보자.
첫째 줄에 정점의 개수 $N$이 주어진다. $(4 \leq N \leq 500,000)$
둘째 줄부터 $N-1$개의 줄에 걸쳐 각 간선이 연결하는 두 정점의 번호 $a,b$가 공백으로 구분되어 주어진다. $(1 \leq a,b \leq N,\ a \neq b)$
입력으로 주어지는 그래프는 트리이다.
주어진 트리에서 르블랑이 시작 정점을 잘 고르고 최적으로 행동했을 때 적절한 순회가 가능하면 "YES"를, 불가능하면 "NO"를 따옴표를 제외하고 출력한다.
4 1 2 2 3 2 4
YES
7 1 2 2 3 1 4 1 5 5 6 5 7
YES
22 1 2 2 3 2 4 3 5 3 6 4 7 4 8 1 9 9 10 9 11 10 12 10 13 11 14 11 15 1 16 16 17 16 18 17 19 17 20 18 21 18 22
NO
Camp > 숭고한 연합 Algorithm Camp > 2022 숭고한 연합 알고리즘 콘테스트 > Division 1 F번