結果

問題 No.3250 最小公倍数
ユーザー nikoro256
提出日時 2025-08-29 21:51:25
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 810 bytes
コンパイル時間 378 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 130,180 KB
最終ジャッジ日時 2025-08-29 21:51:52
合計ジャッジ時間 22,588 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 17 TLE * 1 -- * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import deque


def bfs(s):
    dq = deque()
    dq.append([s, 0])
    dist = [10**9 for _ in range(N)]
    dist[s] = 0
    res = []
    while len(dq) != 0:
        p, h = dq.popleft()
        res.append(p)
        for e in edge[p]:
            if dist[e] == 10**9:
                dq.append([e, h + 1])
                dist[e] = h + 1
    return res

import math
N=int(input())
A=list(map(int,input().split()))
edge = [[] for _ in range(N)]
for _ in range(N-1):
    a,b=map(int,input().split())
    a-=1
    b-=1
    edge[a].append(b)
    edge[b].append(a)
r = bfs(0)
dp = [-1 for _ in range(N)]
for v in r[::-1]:
    dp[v] = A[v]
    for nv in edge[v]:
        if dp[nv] == -1:
            continue
        dp[v] = math.lcm(dp[v], dp[nv])
mod = 998244353
print(*[d%mod for d in dp], sep="\n")
0