Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. fin = open("components.in")
  2. fout = open("components.out ", "w")
  3.  
  4. flag = 0
  5. n, m = map(int, fin.readline().split())
  6. matrix = [[] for i in range(n)]
  7.  
  8. for line in fin:
  9. a, b = map(int, line.split())
  10. matrix[a-1].append(b-1)
  11. matrix[b-1].append(a-1)
  12.  
  13. queue = []
  14. mas = [0]*n
  15. masRes = [0]*n
  16.  
  17. s = 0 #ля пометки вершин
  18. k = 1 #компонента связанности
  19. h = 0
  20.  
  21. while (s<n):
  22. queue.append(s)
  23. while (len(queue) != 0):
  24. v = queue[0]
  25. queue.pop()
  26. for i in range(len(matrix[v])):
  27. to = matrix[v][i]
  28. if mas[to] == 0:
  29. mas[to] = 1
  30. masRes[to] = k
  31. queue.append(to)
  32. masRes[to] = k
  33. mas[to] = 1
  34. h = s
  35. j = s
  36. for j in range(n):
  37. if (masRes[j] == 0):
  38. s = j
  39. break
  40. if h == s:
  41. break
  42. k += 1
  43.  
  44. print(k, file = fout)
  45. for i in range(len(masRes)):
  46. print(masRes[i], file = fout, end = ' ')
  47.  
  48. fin.close()
  49. fout.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement