結果
問題 |
No.3250 最小公倍数
|
ユーザー |
![]() |
提出日時 | 2025-08-29 21:52:38 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 1,544 ms / 2,000 ms |
コード長 | 572 bytes |
コンパイル時間 | 3,275 ms |
コンパイル使用メモリ | 195,988 KB |
実行使用メモリ | 37,700 KB |
最終ジャッジ日時 | 2025-08-29 21:52:58 |
合計ジャッジ時間 | 17,824 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 21 |
ソースコード
#define MD 998244353 int d[1d6+1]; int a[5d5]; Mint z[5d5]; graph g; map<int,int> f(int i,int p){ map<int,int>m; int b=a[i]; z[i]=b; while(b>1){ ++m[d[b]]; b/=d[b]; } rep[g.edge[i]](j,g.es[i]){ if(j!=p){ map<int,int>c=f(j,i); for(auto x:c){ if(x.second>m[x.first]){ z[i]*=Mint(x.first)**(x.second-m[x.first]); m[x.first]=x.second; } } } } return m; } { rep(i,2,1d6+1){ if(!d[i]){ rep(j,i,1d6+1,i){ d[j]=i; } } } int@n; rd(a(n)); int@(u,v)--[n-1]; g.setEdge(n,n-1,u,v); f(0,0); rep(i,n){ wt(z[i]); } }