結果
問題 | No.2418 情報通だよ!Nafmoくん |
ユーザー |
|
提出日時 | 2023-08-12 13:58:48 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 307 ms / 2,000 ms |
コード長 | 598 bytes |
コンパイル時間 | 354 ms |
コンパイル使用メモリ | 82,248 KB |
実行使用メモリ | 91,512 KB |
最終ジャッジ日時 | 2024-11-14 12:22:42 |
合計ジャッジ時間 | 5,626 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
#UF n,m=map(int,input().split()) n*=2 UFI=[None]+[1]*n UFH=[None]+[1]*n def uff(k): point=k while type(UFH[point])!=int: point=int(UFH[point]) return point def ufu(k1,k2): p1=uff(k1) p2=uff(k2) if p1==p2: return 0 if UFH[p1]>UFH[p2]: p1,p2=p2,p1 UFI[p2]=UFI[p1]+UFI[p2] UFH[p2]=max(UFH[p2],UFH[p1]+1) UFH[p1]=str(p2) for i in range(m): a,b=map(int,input().split()) ufu(a,b) I=[None]+[0]*n for i in range(1,n+1): I[uff(i)]=1 wans=0 for i in range(1,n+1): if I[i] and UFI[i]%2: wans+=1 print(wans//2)