結果
問題 | No.1390 Get together |
ユーザー |
![]() |
提出日時 | 2021-03-30 08:20:02 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 902 ms / 2,000 ms |
コード長 | 891 bytes |
コンパイル時間 | 225 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 64,332 KB |
最終ジャッジ日時 | 2024-11-30 05:11:02 |
合計ジャッジ時間 | 15,879 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
from sys import setrecursionlimit, stdindef find(parent, i):t = parent[i]if t < 0:return it = find(parent, t)parent[i] = treturn tdef unite(parent, i, j):i = find(parent, i)j = find(parent, j)if i == j:returnparent[j] += parent[i]parent[i] = jreadline = stdin.readlinesetrecursionlimit(10 ** 6)N, M = map(int, readline().split())box = {}color = {}parent = [-1] * Nfor i in range(N):b, c = map(int, readline().split())box.setdefault(b, [])box[b].append(i)color.setdefault(c, [])color[c].append(i)for b in box.values():i = b[0]for j in b[1:]:unite(parent, i, j)result = 0for c in color.values():i = c[0]for j in c[1:]:if find(parent, i) == find(parent, j):continueresult += 1unite(parent, i, j)print(result)