만드는 중입니다

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

침투

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

요약
100개 방으로 이루어진 트리에서 두 스파이의 이동 경로를 출력합니다. 만남 시간을 시작 거리로 나눈 최대 비율이 가장 작아지도록 합니다.
난이도

어려움10점 중 9점

유형
트리, 게임 이론, DFS
정답자
아직 제출이 없습니다

문제

Ondrej와 Edward는 스파이이며 악의 조직 AQT를 무너뜨리려 한다. 이를 위해 AQT의 기지에 침투해야 한다. 기지는 N=100N = 100개의 방으로 이루어진 트리로 모델링하며, 방 번호는 0부터 N−1N - 1까지이다. 두 사람의 계획은 먼저 납치된 뒤 함께 만나서 작전을 실행하는 것이다. 납치되면 두 사람은 서로 다른 방에 놓이며, 상대가 어느 방에 있는지 알지 못한다. 방에 놓이면 두 사람은 자정에 탈출하여 작전을 실행하기 전에 서로를 만나려 한다.

만나는 방식은 다음과 같다. 홀수 분마다 Ondrej는 현재 방에 머무르거나 인접한 방으로 이동할 수 있다. 짝수 분마다 Edward는 현재 방에 머무르거나 인접한 방으로 이동할 수 있다.

전략은 다음과 같이 정의한다. V(A,R,T)V(A, R, T)는 에이전트 AA가 자정에 방 RR에 있었다고 가정하고, 자정 후 TT분이 지난 지금 AA가 있어야 하는 방을 나타낸다. 전략은 위 조건을 따라야 한다. 두 에이전트는 시각 t(o,e)t(o, e)에 만나며, 이는 V(Ondrej,o,t(o,e))=V(Edward,e,t(o,e))V(\text{Ondrej}, o, t(o, e)) = V(\text{Edward}, e, t(o, e))가 처음 성립하는 시각이다.

Ondrej와 Edward는 시작 방 사이의 거리에 비해 가능한 한 빨리 만나려 한다. 거리 d(o,e)d(o, e)는 ee에서 oo까지 도달하기 위해 반드시 지나야 하는 복도의 최소 개수이다. 서로 다른 모든 방 쌍 oo, ee에 대해 t(o,e)d(o,e)\frac{t(o,e)}{d(o,e)}의 최댓값을 최소로 만드는 전략을 찾아라.

입력

입력의 첫 줄에는 NN이 주어진다(N=100N = 100). NN의 값이 100이 아니면 즉시 프로그램을 종료하라.

이어지는 N−1N - 1개의 줄에는 양방향 복도로 연결된 두 방의 번호가 공백으로 구분되어 주어진다.

출력

먼저 시작 방마다 기록하는 항목 수인 양의 정수 TT를 출력한다. T≤1440T \le 1440을 만족해야 하며, 그렇지 않으면 점수를 받지 못한다.

그다음 Ondrej의 전략, Edward의 전략을 차례로 출력한다. 각 전략은 NN줄로 이루어지며, nn번째 줄(0부터 시작)은 방 nn에서 출발한 에이전트의 경로이다. 각 줄에는 시각 1,2,…,T1, 2, \dots, T에 에이전트가 있어야 할 방 번호를 공백으로 구분하여 TT개 출력한다.

예제1

  1. 예제 1

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