Cod sursa(job #2966190)

Utilizator cristina.damov@s.unibuc.roCristina [email protected] Data 16 ianuarie 2023 20:26:38
Problema Componente tare conexe Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.74 kb
# algoritmul lui tarjan
# inca are niste probleme si nu prea merge imi cer scuze


n = 8
m = 12
muchii = [[1,2],[2,6],[6,7],[7,6],[3,1],[3,4],[2,3],[4,5],[5,4],[6,5],[5,8],[8,7]]
adj = {x: [] for x in range(n+1)}

for x,y in muchii:
    adj[x].append(y)
    adj[y].append(x)

lev = [0] * (n+1)
low = [0] * (n+1)

def dfs(nod, parinte, level):
    if lev[nod] !=0:
        return 
    
    lev[nod] = low[nod] = level
    for x in adj[nod]:
        if not lev[x]:
            dfs(x, nod, level + 1)
    
    curr = min([level] + [low[x] for x in adj[nod] if x != parinte])    
    low[nod] = curr
    # print(low, lev)

dfs(0, 0, 0)
rez = []
for x,y in muchii:
    if low[x] != lev[y]:
        rez.append([x,y])
print(rez)