Cod sursa(job #2945032)
| Utilizator | Data | 23 noiembrie 2022 12:55:23 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 0 |
| Compilator | py | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
def find(p):
if (vec[p] == -1):
return p
else:
return find(vec[p])
f = open("disjoint.in", 'r')
n, m = (int(x) for x in f.readline().split(" "))
vec = [-1 for i in range(n + 1)]
for linie in f:
z = int(linie[0])
x = int(linie[2])
y = int(linie[4])
absx = 0
absy = 0
if z == 1:
absx = find(x)
absy = find(y)
vec[absx] = absy
else:
if(find(x) == find(y)):
print("DA")
else:
print("NU")
