結果

問題 No.3250 最小公倍数
ユーザー nikoro256
提出日時 2025-08-29 21:50:23
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 819 bytes
コンパイル時間 244 ms
コンパイル使用メモリ 82,904 KB
実行使用メモリ 200,324 KB
最終ジャッジ日時 2025-08-29 21:50:46
合計ジャッジ時間 20,446 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 1
other WA * 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)
print(r)
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