만드는 중입니다

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

원심분리기

면접 대비

시간 제한1.5초메모리 제한2048 MB

요약
트리의 각 조인트에 든 유체가 무작위로 고른 중심에서 바깥으로 흐를 때, 각 조인트에 남는 양의 기댓값을 998244353으로 나눈 나머지로 구합니다.
난이도

보통10점 중 5점

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

문제

당신은 최근 은하 간 폐기물 수거 임무에서 버려진 미래형 로봇을 발견했다. 이 로봇은 내부에 유체가 든 공 모양의 관절 nn개로 이루어져 있다. 관절들은 n−1n-1개의 유연한 파이프로 연결되어 있고, 파이프를 따라 유체가 양방향으로 흐를 수 있다. 이 유체를 분석하려고 원심분리기를 사용하기로 했다.

원심분리기 사용법은 잘 모르기 때문에, 관절 하나를 원심분리기의 중심에 고정하고 기계를 켰다. 기계가 빠르게 회전하면 모든 유체가 중심에서 바깥쪽으로 밀려난다. 유체가 흐를 수 있는 파이프가 둘 이상이면, 유체는 그 파이프들에 균등하게 나뉜다.

과정이 끝났을 때 가장 바깥쪽 관절에 유체가 얼마나 남는지 궁금하다. 어느 관절을 중심에 고정했는지 잊어버렸으므로, 관절을 무작위로 골랐다고 가정하고 각 관절에 남는 유체의 기댓값을 구해야 한다.

입력

첫 줄에 관절의 수 nn (1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5)이 주어진다.

다음 줄에는 ii번 관절의 유체 양 aia_i (0≤ai≤1090 \leq a_i \leq 10^9)가 nn개 주어진다.

다음 n−1n-1개의 줄에는 파이프로 연결된 두 관절 uu, vv (1≤u,v≤n1 \leq u, v \leq n)가 주어진다. 이 파이프들은 트리를 이룬다.

출력

nn개의 줄에 정수를 하나씩 출력한다. ii번째 줄은 과정이 끝난 뒤 ii번 관절에 남는 유체 양의 기댓값을 998 244 353998\,244\,353으로 나눈 나머지이다.

형식적으로, M=998 244 353M = 998\,244\,353이라 하자. 답은 기약분수 pq\frac{p}{q}로 나타낼 수 있으며 q≢0(modM)q \not\equiv 0 \pmod{M}이다. 0≤x<M0 \le x < M이고 x⋅q≡p(modM)x \cdot q \equiv p \pmod{M}을 만족하는 정수 xx를 출력한다.

힌트

첫 번째 예시에서 1번 관절을 중심에 고정하면 모든 유체가 1번에서 2번으로 흐르고, 합쳐진 유체가 3번으로 흐른다. 따라서 1번과 2번은 비고, 3번에 7단위의 유체가 모인다.

2번 관절을 중심에 고정하면 유체의 절반은 1번으로, 절반은 3번으로 흐른다. 각 관절에는 순서대로 2, 0, 5단위가 남는다. 3번 관절을 고정하면 7단위 전부가 1번에 남는다.

각 관절의 유체 기댓값은 다음과 같다. 13⋅(0+2+7)=3\frac{1}{3} \cdot (0 + 2 + 7) = 3 13⋅(0+0+0)=0\frac{1}{3} \cdot (0 + 0 + 0) = 0 13⋅(7+5+0)=4\frac{1}{3} \cdot (7 + 5 + 0) = 4

예제2

  1. 예제 1

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

    입력
    6
    4 1 3 11 7 2
    1 4
    2 3
    6 2
    2 4
    4 5
    
    예상 출력
    928921837
    0
    818005794
    0
    679360751
    568444705