아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

무지개 길

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

요약
간선마다 색이 칠해진 트리에서, v에서 시작하는 모든 단순 경로가 같은 색의 연속 간선을 갖지 않도록 하는 모든 정점 v를 찾는다.
난이도

어려움10점 중 8점

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

문제

노드 nn개로 이루어진 트리가 있다. 노드에는 1부터 nn까지 번호가 붙어 있고, 각 간선은 nn가지 색 중 하나를 가진다. 트리의 어떤 경로에서 이웃한 두 간선의 색이 항상 서로 다르면 그 경로를 무지개 경로라고 한다. 노드 vv를 한쪽 끝점으로 하는 단순 경로가 모두 무지개 경로이면 vv를 좋은 노드라고 한다.

주어진 트리에서 좋은 노드를 모두 찾아라.

단순 경로는 같은 정점도 같은 간선도 두 번 지나지 않는 경로다.

입력

첫째 줄에 정수 nn이 주어진다. (1≤n≤50 0001 \le n \le 50\,000)

다음 n−1n - 1개 줄에는 세 정수 aia_i, bib_i, cic_i가 공백으로 구분되어 주어진다. (1≤ai,bi,ci≤n1 \le a_i, b_i, c_i \le n, ai≠bia_i \ne b_i) 이는 노드 aia_i와 노드 bib_i를 잇는 색 cic_i의 간선을 뜻한다.

주어지는 간선은 항상 트리를 이룬다.

출력

첫째 줄에 좋은 노드의 개수 kk를 출력한다.

다음 kk개 줄에 좋은 노드의 번호를 오름차순으로 한 줄에 하나씩 출력한다.

힌트

무지개 조건은 경로에서 연속한 두 간선에만 적용된다. 경로 v1,v2,v3,v4v_1, v_2, v_3, v_4에서 간선 (v1,v2)(v_1, v_2)와 간선 (v3,v4)(v_3, v_4)는 이웃하지 않으므로 색이 같아도 된다. 간선이 한 개 이하인 경로에는 이웃한 간선 쌍이 없으니 언제나 무지개 경로다.

예제4

  1. 예제 1

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

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

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

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