만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

노드 하나가 사라졌다

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

요약
정점이 2^n - 2개인 트리가 주어질 때, 루트가 아닌 정점 하나를 지워 완전 이진 트리를 만들 수 있는 제거 정점의 부모를 모두 구합니다.
난이도

어려움10점 중 8점

유형
트리, DFS, 재귀, 구현
정답자
아직 제출이 없습니다

문제

정수 nn이 주어진다. 다음 절차를 McDic's generation이라고 부른다.

  1. 정점이 2n−12^{n} - 1개인 완전 이진 트리를 만든다. 이 트리에는 루트가 정확히 하나 있고, 모든 잎의 깊이(루트로부터의 거리)가 같으며, 잎이 아닌 모든 정점은 자식을 정확히 두 개 가진다.
  2. 루트가 아닌 정점 vv를 하나 고른다.
  3. vv를 트리에서 제거하고, vv의 부모와 vv의 직접 자식들을 새 간선으로 잇는다. vv에 자식이 없으면 새 간선은 만들지 않는다.

주어진 트리가 McDic's generation으로 만들어질 수 있는지 판단하라. 만들어질 수 있다면, 주어진 트리에서 제거된 정점의 부모를 구하라.

입력

첫 줄에 정수 nn (2≤n≤172 \le n \le 17)이 주어진다.

이어지는 2n−32^{n} - 3개의 줄 각각에는 정수 aia_i, bib_i (1≤ai<bi≤2n−21 \le a_i < b_i \le 2^{n} - 2)가 주어지며, 두 정점 사이에 간선이 있다는 뜻이다. 주어진 간선들은 트리를 이룬다.

출력

두 줄을 출력한다.

첫 줄에는 가능한 답의 개수를 출력한다. 주어진 트리가 McDic's generation으로 만들어질 수 없으면 0을 출력한다.

둘째 줄에는 가능한 모든 답을 오름차순으로 공백으로 구분하여 출력한다. 만들어질 수 없는 경우에는 둘째 줄에 아무것도 출력하지 않는다.

힌트

첫 번째 예시에서는 33만이 가능한 답이다.

두 번째 예시에서는 가능한 답이 2개이다.

세 번째 예시의 트리는 McDic's generation으로 만들어질 수 없다.

예제3

  1. 예제 1

    입력
    4
    1 2
    1 3
    2 4
    2 5
    3 6
    3 13
    3 14
    4 7
    4 8
    5 9
    5 10
    6 11
    6 12
    
    예상 출력
    1
    3
    
  2. 예제 2

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

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