만드는 중입니다

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

트리와 경로 개수 쿼리

면접 대비

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

요약
빨강과 파랑으로 칠해진 트리에서 질의 정점 u를 내부에 지나는 빨강-파랑 단순 경로의 개수를 구합니다.
난이도

보통10점 중 5점

유형
트리, DFS, 수학
정답자
아직 제출이 없습니다

문제

NN개의 정점으로 이루어진 트리가 있다. 정점은 11번부터 NN번까지 번호가 매겨져 있고, 각 정점은 빨간색 또는 파란색이다.

다음 쿼리를 수행하는 프로그램을 작성하시오.

  • u: 빨간색 정점과 파란색 정점을 잇는 단순 경로 중에서 uu번 정점을 경유하는 경로의 개수를 출력한다. 경로에는 방향이 없다. 경로가 uu번 정점을 경유한다는 것은 uu번 정점이 경로의 시작점이나 끝점이 아니라 중간에 있다는 뜻이다.

입력

첫째 줄에 트리의 크기 NN(1≤N≤100 0001\le N \le 100\,000)이 주어진다.

둘째 줄에 a1,a2,…,aNa_1, a_2, \ldots, a_N이 주어진다. aia_i(0≤ai≤10 \le a_i \le 1)는 ii번 정점의 색깔이며, 11은 빨간색, 00은 파란색을 뜻한다.

셋째 줄부터 N−1N-1개의 줄에 간선이 잇는 두 정점의 번호 uu, vv(1≤u,v≤N1 \le u, v \le N, u≠vu \ne v)가 주어진다.

N+2N+2번째 줄에 쿼리의 개수 QQ(1≤Q≤N1 \le Q \le N)가 주어진다.

N+3N+3번째 줄부터 QQ개의 줄에 쿼리가 주어진다. 각 쿼리는 정수 uu(1≤u≤N1 \le u \le N) 하나로 이루어진다.

출력

각 쿼리의 결과를 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

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

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