Pagini recente » Profil florinhaja | Profil M@2Te4i | Profil margiki | Monitorul de evaluare | Cod sursa (job #2783158)
from collections import deque
def citiregraf(fisier):
f = open(fisier)
l = f.readline().rstrip().split(maxsplit= 2)
n = int(l[0])
m = int(l[1])
s = int(l[2])
ls_adiacenta = [[] for i in range(n+1)]
for i in range(m):
l1 = f.readline().rstrip().split(maxsplit= 1)
x = int(l1[0])
y = int(l1[1])
ls_adiacenta[x].append(y)
return ls_adiacenta, s
def bfs(ls, s):
vizitat = [0 for i in range(len(ls))]
dist = [0 for i in range(len(ls))]
q = deque()
q.append(s)
vizitat[s] = 1
dist[s] = 0
while len(q) != 0:
i = q.popleft()
for j in ls[i]:
if vizitat[j] == 0:
q.append(j)
vizitat[j] = 1
dist[j] = dist[i] + 1
for i in range(len(vizitat)):
if i != 0 and vizitat[i] == 0:
dist[i] = -1
return dist[1:]
l = citiregraf("bfs.in")
print(l)
f = open("bfs.out", "w")
f.write(str(bfs(l[0], l[1])))