Pagini recente » Cod sursa (job #302529) | Cod sursa (job #2820545) | Cod sursa (job #2948566) | Cod sursa (job #131050) | Cod sursa (job #2948549)
with open('disjoint.in','r') as f:
line = f.readline()
line = [int(x) for x in line.split()]
n = line[0]
m = line[1]
#initializare
tata = [0 for i in range(n+1)]
h = [0 for i in range(n+1)]
def reprez(u):
global tata
# while tata[u]!=0:
# u = tata[u]
# return u
if tata[u] == 0:
return u
tata[u] = reprez(tata[u])
return tata[u]
def reuneste(u,v):
ru = reprez(u)
rv = reprez(v)
if h[ru]>h[rv]:
tata[rv] = ru
else:
tata[ru] = rv
if h[ru] == h[rv]:
h[rv] = h[rv] + 1
result = ''
for i in range(m):
line = f.readline()
line = [int(x) for x in line.split()]
if line[0] == 2:
if reprez(line[1]) == reprez(line[2]):
#print("DA")
result += " " + " DA"
else:
#print("NU")
result += " " + "NU"
else:
if reprez(line[1]) != reprez(line[2]):
reuneste(reprez(line[1]),reprez(line[2]))
with open('disjoint.out','w') as g:
cuv = [x for x in result.split()]
#print(cuv)
for c in cuv:
g.write(c+'\n')