Cod sursa(job #2961625)

Utilizator Eric24ERIC ALEXANDRU MOROSAN Eric24 Data 6 ianuarie 2023 19:26:42
Problema Paduri de multimi disjuncte Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.74 kb
def tata(x):
    if t[x] == 0:
        return x
    return tata(t[x])


def compress(tt, ff):
    if ff == tt:
        return
    t[ff] = tt
    compress(tt, t[ff])


with open("disjoint.in", 'r') as f:
    with open("disjoint.out", 'w') as g:
        n, m = f.readline().split()
        t = [0 for _ in range(int(n)+1)]
        for _ in range(int(m)):
            cod, x, y = [int(_) for  _ in f.readline().split()]
            if int(cod) == 2:
                if tata(x) == tata(y):
                    print("DA", file=g)
                else:
                    print("NU", file=g)
            else:
                tx = tata(x)
                ty = tata(y)
                t[ty] = tx
                compress(tx, y)