Magical Trees

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

요약
N개 정점 위 세 트리의 간선을 모아 모든 간선 쌍이 정확히 두 번씩 나타나도록 트리 세 개를 구성한다.
난이도

어려움10점 중 8점

유형
그래프, 조합론, 분할 정복, 완전 탐색
정답자
아직 제출이 없습니다

문제

라즈, 쉬폰, 솔트는 'CAFE MiLK'라는 이름의 카페를 운영하고 있다. 카페의 외관을 꾸미려는 셋은 마당에 인조 나무 세 그루를 심기로 했다.

세 명은 NN개의 정점으로 이루어진 트리 세 개를 만들려고 한다. SS를 각 트리에 사용된 간선 (u,v)(u, v) (u<v)(u < v)를 모두 모은 multiset이라고 하자. 이때 SS의 임의의 원소 ee에 대해, ee는 항상 SS에서 정확히 두 번 등장해야 한다.

위 조건을 만족하는 트리 세 개를 만들 수 있는지 확인하고, 만들 수 있다면 어떻게 만들 수 있는지 알려주자!

입력

첫 번째 줄에 정수 NN이 주어진다. (2≤N≤300 000)(2 \leq N \leq 300\ 000)

출력

조건을 만족하도록 트리를 만들 수 없다면 No를 출력한다.

아니라면 Yes를 출력하고, 다음 3N−33N-3개의 줄에 각 트리의 간선 (u,v)(u, v) (1≤u<v≤N)(1 \leq u < v \leq N)를 u v의 형식으로 출력한다. 이는 트리에 uu번 정점과 vv번 정점을 연결하는 간선이 존재함을 의미한다. 처음 N−1N-1개의 줄에는 첫 번째 트리의 간선, 그다음 N−1N-1개의 줄에는 두 번째 트리의 간선, 마지막 N−1N-1개의 줄에는 세 번째 트리의 간선을 출력한다.

힌트

multiset은 중복 원소를 허용하는 집합이다.

예제3

  1. 예제 1

    입력
    2
    
    예상 출력
    No
    
  2. 예제 2

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

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