Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.96 KB | None | 0 0
  1. edges = []
  2. vertices = []
  3.  
  4. def DFS(vertex: tuple):
  5.     vertex[1] = True
  6.     for edge in edges:
  7.         if edge[0] == vertex[0]:
  8.             v = vertices[edge[1] - 1]
  9.             if not v[1]:
  10.                 DFS(v)
  11.         if edge[1] == vertex[0]:
  12.             v = vertices[edge[0] - 1]
  13.             if not v[1]:
  14.                 DFS(v)
  15.  
  16. def main():
  17.     verts = set()
  18.     f = open('friends.in')
  19.     f.readline() # skipping first line
  20.     for line in f:
  21.         edge = list(map(int, line.split()))
  22.         edges.append(edge)
  23.         verts.add(edge[0])
  24.         verts.add(edge[1])
  25.  
  26.     for vertex in verts:
  27.         vertices.append([vertex, False])
  28.  
  29.     k = 0
  30.     nodes = []
  31.     for vertex in vertices:
  32.         if not vertex[1]:
  33.             DFS(vertex)
  34.             nodes.append(vertex[0])
  35.             k += 1
  36.  
  37.     print(k - 1)
  38.     if not k == 1:
  39.         for i, node in enumerate(nodes[:-1]):
  40.             print('%d %d' % (nodes[i], nodes[i + 1]))
  41. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement