Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fin = open("components.in")
- fout = open("components.out ", "w")
- flag = 0
- n, m = map(int, fin.readline().split())
- matrix = [[] for i in range(n)]
- for line in fin:
- a, b = map(int, line.split())
- matrix[a-1].append(b-1)
- matrix[b-1].append(a-1)
- queue = []
- mas = [0]*n
- masRes = [0]*n
- s = 0 #ля пометки вершин
- k = 1 #компонента связанности
- h = 0
- while (s<n):
- queue.append(s)
- while (len(queue) != 0):
- v = queue[0]
- queue.pop()
- for i in range(len(matrix[v])):
- to = matrix[v][i]
- if mas[to] == 0:
- mas[to] = 1
- masRes[to] = k
- queue.append(to)
- masRes[to] = k
- mas[to] = 1
- h = s
- j = s
- for j in range(n):
- if (masRes[j] == 0):
- s = j
- break
- if h == s:
- break
- k += 1
- print(k, file = fout)
- for i in range(len(masRes)):
- print(masRes[i], file = fout, end = ' ')
- fin.close()
- fout.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement