만드는 중입니다

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

색깔 있는 트리

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

요약
정점에 색이 칠해진 트리에서 각 간선마다, 그 간선을 지나는 경로의 양 끝 정점 색이 같은 쌍의 개수를 구합니다.
난이도

보통10점 중 7점

유형
트리, 해시맵, DFS
정답자
아직 제출이 없습니다

문제

정점에 색이 칠해진 트리가 주어진다. 각 간선에 대해, 같은 색을 가진 정점 쌍 중 두 정점 사이의 경로에 그 간선이 포함되는 쌍의 개수를 구하라. 트리에서는 임의의 두 정점을 잇는 경로가 정확히 하나뿐이다.

입력

첫 줄에 정점의 개수 nn (2≤n≤1052 \le n \le 10^5)이 주어진다. 정점은 1번부터 nn번까지 번호가 매겨져 있다.

다음 nn개의 줄에는 정수 cc (1≤c≤n1 \le c \le n)가 한 줄에 하나씩 주어지며, 순서대로 각 정점의 색을 나타낸다.

다음 n−1n-1개의 줄에는 두 정수 aa, bb (1≤a<b≤n1 \le a < b \le n)가 주어지며, 정점 aa와 정점 bb를 잇는 무방향 간선을 나타낸다.

출력

n−1n-1개의 줄에 답을 출력한다. 각 줄에는 입력에서 간선이 주어진 순서대로, 그 간선에 대한 답을 정수 하나로 출력한다.

예제2

  1. 예제 1

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

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