結果
問題 |
No.2290 UnUnion Find
|
ユーザー |
![]() |
提出日時 | 2025-07-15 17:49:00 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 704 ms / 2,000 ms |
コード長 | 734 bytes |
コンパイル時間 | 610 ms |
コンパイル使用メモリ | 82,156 KB |
実行使用メモリ | 125,412 KB |
最終ジャッジ日時 | 2025-07-15 17:49:33 |
合計ジャッジ時間 | 32,451 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 46 |
ソースコード
N, Q = map(int, input().split()) Leaders = set(range(N)) Par = [i for i in range(N)] Children = [[i] for i in range(N)] for _ in range(Q): query = list(map(int, input().split())) if(query[0] == 1): u, v = query[1] - 1, query[2] - 1 pu, pv = Par[u], Par[v] if(len(Children[pu]) < len(Children[pv])): pv, pu = pu, pv #pvの方が小さい for x in Children[pv]: Children[pu].append(x) Par[x] = pu Leaders.remove(pv) else: v = query[1] - 1 if(len(Leaders) == 1): print(-1) else: for x in Leaders: if(x != Par[v]): print(x + 1) break