Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def bfs_(vertexs, start, end):
- if(start == end):
- return 0
- list_dist = [ 0 for i in range(len(vertexs))]
- list_ = [start]
- passedVertexs = set()
- passedVertexs.add(start)
- while(list_):
- el = list_.pop(0)
- for x in vertexs[el]:
- if x in passedVertexs:
- continue
- list_.append(x)
- list_dist[x] = list_dist[el] + 1
- passedVertexs.add(x)
- return list_dist[end]
- def bfs(vertexs):
- dist = []
- for j in range(len(vertexs)):
- dist.append(bfs_(vertexs, 0, j))
- line = ""
- for i in range(len(vertexs)):
- line += str(dist[i]) + " "
- return line
- with open("pathbge1.in", "r") as inp:
- list_adg = []
- line = inp.readline()
- n = int(line.split()[0])
- m = int(line.split()[1])
- edges = []
- for i in range(m):
- edge = inp.readline().split()
- edge = [int(edge[0]), int(edge[1])]
- edges.append(edge)
- vertexs = dict()
- for i in range(n):
- vertexs_ = []
- vertexs[i] = vertexs_
- for i in range(n):
- for j in range(n):
- if [i + 1, j + 1] in edges:
- vertexs[i].append(j)
- vertexs[j].append(i)
- line = bfs(vertexs)
- with open("pathbge1.out", "w") as out:
- out.write(line)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement