Pagini recente » Cod sursa (job #3313135) | Cod sursa (job #1342966) | Cod sursa (job #274320) | Cod sursa (job #3357969) | Cod sursa (job #3317156)
try:
fin = open('dfs.in', 'r')
fout = open('dfs.out', 'w')
n, m = map(int, fin.readline().split())
graf = [[] for _ in range(n + 1)]
for _ in range(m):
x, y = map(int, fin.readline().split())
graf[x].append(y)
graf[y].append(x)
vizitat = [False] * (n + 1)
numar_componente = 0
for i in range(1, n + 1):
if not vizitat[i]:
numar_componente += 1
stack = [i]
vizitat[i] = True
while stack:
nod_curent = stack.pop()
for vecin in graf[nod_curent]:
if not vizitat[vecin]:
vizitat[vecin] = True
stack.append(vecin)
fout.write(str(numar_componente))
finally:
if 'fin' in locals() and fin:
fin.close()
if 'fout' in locals() and fout:
fout.close()