結果
問題 | No.2494 Sum within Components |
ユーザー | sasa8uyauya |
提出日時 | 2023-10-06 21:52:34 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 306 ms / 2,000 ms |
コード長 | 529 bytes |
コンパイル時間 | 349 ms |
コンパイル使用メモリ | 82,100 KB |
実行使用メモリ | 102,272 KB |
最終ジャッジ日時 | 2024-07-26 16:01:44 |
合計ジャッジ時間 | 3,548 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
def union(x,y): rx=root(x) ry=root(y) if rx==ry: return if rx>ry: rx,ry=ry,rx r[ry]=rx return def root(x): p=x l=[p] while r[p]!=p: p=r[p] l.append(p) for p in l: r[p]=l[-1] return r[x] M=998244353 n,m=map(int,input().split()) a=list(map(int,input().split())) r=list(range(n)) for i in range(m): u,v=map(int,input().split()) u-=1 v-=1 union(u,v) g=[0]*n for i in range(n): ri=root(i) g[ri]+=a[i] g[ri]%=M b=1 for i in range(n): ri=root(i) b*=g[ri] b%=M print(b)