結果

問題 No.1221 木 *= 3
ユーザー Kiri8128
提出日時 2020-07-23 02:31:08
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 1,017 bytes
コンパイル時間 304 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 33,716 KB
最終ジャッジ日時 2024-11-15 16:17:30
合計ジャッジ時間 12,444 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 4
other WA * 18
権限があれば一括ダウンロードができます

ソースコード

diff #

def is_tree(E):
    NN = len(E) + 1
    P = [-1 for i in range(NN)]
    def par(a):
        L = []
        while P[a] >= 0:
            L.append(a)
            a = P[a]
        for l in L:
            P[l] = a
        return a
    def unite(a, b):
        if par(a) != par(b):
            if P[par(b)] >= P[par(a)]:
                if P[par(b)] == P[par(a)]: P[par(a)] -= 1
                P[par(b)] = par(a)
            else:
                P[par(a)] = par(b)
    for a, b in E:
        if not 0 <= a < NN: return False
        if not 0 <= b < NN: return False
        if par(a) == par(b):
            return False
        unite(a, b)
    return True

N = int(input())
A = [int(a) for a in input().split()]
B = [int(a) for a in input().split()]
X = []
for i in range(N-1):
    x, y = map(int, input().split())
    X.append((x-1, y-1))

assert 1 <= N <= 10 ** 5
assert len(A) == N
assert len(B) == N
for a in A:
    assert - 10 ** 9 <= a <= 10 ** 9
for b in B:
    assert - 10 ** 9 <= b <= 10 ** 9

assert is_tree(X)
0