結果
| 問題 |
No.977 アリス仕掛けの摩天楼
|
| ユーザー |
tyawanmusi
|
| 提出日時 | 2020-01-31 23:03:59 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,001 bytes |
| コンパイル時間 | 141 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 13,824 KB |
| 最終ジャッジ日時 | 2024-09-17 10:10:06 |
| 合計ジャッジ時間 | 4,843 ms |
|
ジャッジサーバーID (参考情報) |
judge6 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 WA * 15 |
ソースコード
import sys;sys.setrecursionlimit(10**9)
class UnionFind():
def __init__(self,n):
self.n=[-1]*n
self.r=[0]*n
def Find_Root(self,x):
if self.n[x]<0:
return x
else:
self.n[x]=self.Find_Root(self.n[x])
return self.n[x]
def Unite(self,x,y):
x=self.Find_Root(x)
y=self.Find_Root(y)
if x==y:return
elif self.r[x]>self.r[y]:
self.n[x]+=self.n[y]
self.n[y]=x
else:
self.n[y]+=self.n[x]
self.n[x]=y
if self.r[x]==self.r[y]:
self.r[y]+=1
def Root_Same(self,x,y):
return self.Find_Root(x)==self.Find_Root(y)
def Count(self,x):
return -self.n[self.Find_Root(x)]
def Is_Root(self,x):
return self.Find_Root(x)==x
n=int(input())
u=UnionFind(n)
for i in range(n-1):
a,b=map(int,input().split())
u.Unite(a,b)
c=[]
for i in range(n):
if u.Is_Root(i):c.append(i)
if len(c)==1:print("Bob")
elif len(c)==2:
if u.Count(c[0])==1 or u.Count(c[1])==1:print("Bob")
else:print("Alice")
else:print("Bob")
tyawanmusi