結果
問題 |
No.3250 最小公倍数
|
ユーザー |
![]() |
提出日時 | 2025-08-29 22:16:55 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 1,089 ms / 2,000 ms |
コード長 | 621 bytes |
コンパイル時間 | 3,384 ms |
コンパイル使用メモリ | 196,268 KB |
実行使用メモリ | 37,060 KB |
最終ジャッジ日時 | 2025-08-29 22:17:11 |
合計ジャッジ時間 | 14,243 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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]; 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); if(c.size()>m.size()){ swap(c,m); } for(auto x:c){ if(x.second>m[x.first]){ m[x.first]=x.second; } } } } z[i]=1; for(auto x:m){ z[i]*=Mint(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]); } }