結果
問題 |
No.1054 Union add query
|
ユーザー |
👑 ![]() |
提出日時 | 2020-05-15 22:02:16 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 807 bytes |
コンパイル時間 | 288 ms |
コンパイル使用メモリ | 82,208 KB |
実行使用メモリ | 99,672 KB |
最終ジャッジ日時 | 2024-09-19 10:30:53 |
合計ジャッジ時間 | 4,302 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | TLE * 1 -- * 7 |
ソースコード
def uf_find(n,p,slis): allsum = 0 while p[n] != n: allsum += slis[n] n = p[n] allsum += slis[n] return n,allsum def uf_union(a,b,p,rank,slis): ap,tmp = uf_find(a,p,slis) bp,tmp = uf_find(b,p,slis) if ap == bp: return True else: p[ap] = len(p) p[bp] = len(p) slis.append(0) p.append(len(p)) return True N,Q = map(int,input().split()) TAB = [] p = [i for i in range(N)] rank = [1] * N slis = [0] * N for i in range(Q): t,a,b = map(int,input().split()) a -= 1 if t == 1: b -= 1 uf_union(a,b,p,rank,slis) elif t == 2: nowp,asum = uf_find(a,p,slis) slis[nowp] += b else: nowp,asum = uf_find(a,p,slis) print (asum)