만드는 중입니다

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

쿼리와 트리 1

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

요약
정점 N개인 루트 트리에서 M개 쌍의 최소 공통 조상이 주어질 때, 모든 조건을 만족하는 트리의 부모 배열을 출력하고 그런 트리가 없으면 NIE를 출력합니다.
난이도

보통10점 중 7점

유형
트리, 백트래킹, 완전 탐색
정답자
아직 제출이 없습니다

문제

정점 N개(2 ≤ N ≤ 60)로 이루어진 트리가 주어진다. 각 정점은 1번부터 N번까지 번호가 매겨져 있으며, 그중 한 정점이 루트이다.

트리와 쿼리를 좋아하는 당신은 두 노드의 쌍 M개(1 ≤ M ≤ 120)를 골라 각 쌍의 가장 가까운 공통 조상을 계산하였다.

하지만 사실 당신은 그 트리가 어떻게 생겼는지 모른다.

두 노드의 쌍과 가장 가까운 공통 조상 정보가 M개 주어질 때, 이 정보를 모두 만족하는 트리를 아무거나 출력하라. 그러한 트리가 없다면 NIE를 출력하라.

입력

첫 번째 줄에 테스트 케이스의 수 T가 주어진다. 이후 아래 형식의 입력이 T개 주어진다.

각 테스트 케이스의 첫 번째 줄에는 두 정수 N, M이 주어진다.

이후 M개의 줄에 u, v, w가 주어진다. u번 정점과 v번 정점의 가장 가까운 공통 조상이 w번 정점이라는 뜻이다. (1 ≤ u, v, w ≤ N, u ≠ v)

한 입력에서 N의 합은 16276 이하이다.

한 입력에서 M의 합은 33043 이하이다.

출력

각 테스트 케이스에 대해 한 줄을 출력하라. 그러한 트리가 없다면 NIE를 출력하라. 있다면 N개의 정수를 출력하라. i번째 정수는 i번 정점의 부모 정점이다. 루트에 대해서는 0을 출력해야 한다. 출력은 올바른 루트 있는 트리를 나타내야 한다.

예제1

  1. 예제 1

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