만드는 중입니다

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

참 어려운 문제

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

요약
정점마다 색이 칠해진 트리에서 같은 색의 두 정점이 조상과 자손 관계에 놓이지 않을 때, 루트가 될 수 있는 모든 정점의 개수와 번호의 합, 제곱합을 구합니다.
난이도

어려움10점 중 8점

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

문제

NN개의 정점으로 이루어진 루트 있는 트리가 있다. 모든 정점에는 1번부터 NN번까지 번호가 붙어 있다. ii번 정점은 AiA_i번 색으로 칠해져 있다 (1≤i≤N1 \le i \le N).

이 트리에는 특별한 성질이 있다. 색이 같은 두 정점을 고르면, 그 둘은 항상 조상-자식 관계가 아니다.

교준이는 트리의 구조는 알지만, 루트가 어느 정점인지는 알지 못한다. 루트가 될 수 있는 정점을 모두 찾는 프로그램을 작성하시오.

입력

첫 번째 줄에 정점의 개수를 나타내는 자연수 NN이 주어진다.

두 번째 줄에 정점의 색을 나타내는 자연수 A1,⋯ ,ANA_1, \cdots, A_N이 공백으로 구분되어 주어진다.

세 번째 줄부터 N−1N-1개의 줄에 걸쳐 간선의 정보가 주어진다. (i+2)(i+2)번째 줄에는 ii번째 간선을 나타내는 두 자연수 BiB_i와 CiC_i가 공백으로 구분되어 주어진다 (1≤i<N1 \le i < N). ii번째 간선은 BiB_i번 정점과 CiC_i번 정점을 연결한다.

출력

첫 번째 줄에 루트가 될 수 있는 정점의 개수를 출력한다.

두 번째 줄에 루트가 될 수 있는 정점 번호의 합을 출력한다.

세 번째 줄에 루트가 될 수 있는 정점 번호의 제곱의 합을 출력한다.

루트가 될 수 있는 정점이 하나도 없다면, 세 값은 모두 0이다.

제한

  • 1≤N≤250,0001 \le N \le 250,000
  • 1≤Ai≤N1 \le A_i \le N (1≤i≤N1 \le i \le N)
  • 1≤Bi≤N1 \le B_i \le N (1≤i<N1 \le i < N)
  • 1≤Ci≤N1 \le C_i \le N (1≤i<N1 \le i < N)
  • Bi≠CiB_i \neq C_i (1≤i<N1 \le i < N)

예제2

  1. 예제 1

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

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