만드는 중입니다

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

걸어 다니기

면접 대비

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

요약
가중치가 있는 트리에서 서로 다른 두 정점 사이 경로의 간선 가중치 XOR 값 중 최솟값과 최댓값을 구합니다.
난이도

보통10점 중 4점

유형
트리, 비트 연산, 트라이
정답자
아직 제출이 없습니다

문제

가중치가 있는 트리가 주어진다. 트리의 정점은 NN개이며 1번부터 NN번까지 번호가 매겨져 있다. 간선은 1번부터 N−1N-1번까지 번호가 매겨져 있고, ii번 간선은 정점 UiU_i와 ViV_i를 잇으며 음이 아닌 정수 가중치 WiW_i를 가진다.

트리의 경로는 어떤 정수 m≥1m \ge 1에 대해 서로 다른 정점들의 수열 (u0,u1,…,um)(u_0, u_1, \dots, u_m)이고, 0≤j<m0 \le j < m인 모든 인접한 쌍 (uj,uj+1)(u_j, u_{j+1})이 트리의 간선으로 연결된 것이다. 경로 (u0,…,um)(u_0, \dots, u_m)의 점수는 경로 위 모든 간선 가중치의 XOR, 즉 XOR(w0,w1,…,wm−1)\text{XOR}(w_0, w_1, \dots, w_{m-1})이다. 여기서 wjw_j는 uju_j와 uj+1u_{j+1}을 잇는 간선의 가중치이다.

트리에 있는 모든 경로 중에서 점수의 최솟값과 최댓값을 구하라.

입력

첫 줄에 정점의 개수 NN (2≤N≤100 0002 \le N \le 100\,000)이 주어진다. 이어서 N−1N-1개의 줄에 세 정수 UiU_i, ViV_i, WiW_i (1≤Ui<Vi≤N1 \le U_i < V_i \le N; 0≤Wi≤1090 \le W_i \le 10^9)가 주어지며, 이는 ii번 간선을 나타낸다.

출력

최소 점수와 최대 점수를 공백으로 구분하여 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    6
    1 2 3
    1 3 4
    2 4 2
    2 5 8
    3 6 1
    
    예상 출력
    1 15
    
  2. 예제 2

    입력
    6
    1 2 4
    1 3 3
    1 4 1
    4 5 7
    1 6 2
    
    예상 출력
    1 7
    
  3. 예제 3

    입력
    10
    1 2 5
    1 3 3
    2 4 8
    3 5 7
    2 6 6
    5 7 9
    4 8 8
    1 9 6
    6 10 11
    
    예상 출력
    0 14