結果
問題 | No.1390 Get together |
ユーザー |
![]() |
提出日時 | 2021-03-30 07:48:40 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 914 bytes |
コンパイル時間 | 222 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 63,212 KB |
最終ジャッジ日時 | 2024-11-30 04:34:57 |
合計ジャッジ時間 | 20,524 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 WA * 11 |
ソースコード
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(lambda x: int(x) - 1, readline().split())box.setdefault(b, [])box[b].append(i)color.setdefault(c, [])color[c].append(i)for b in box:i = box[b][0]for j in box[b][1:]:unite(parent, i, j)result = 0for c in color:i = find(parent, color[c][0])for j in color[c][1:]:if i == find(parent, j):continueresult += 1unite(parent, i, j)print(result)