Cod sursa(job #3317156)

Utilizator bmihai222Bidiga Mihai bmihai222 Data 22 octombrie 2025 16:30:35
Problema Parcurgere DFS - componente conexe Scor 100
Compilator py Status done
Runda Arhiva educationala Marime 0.94 kb
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()