Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf8 -*-
- st=input().split()
- n=int(st[0])
- s=int(st[1])
- graf = [[0] for i in range(n+1)]
- for i in range (s):
- stroka=[int(x)for x in input().split()]
- graf[stroka[0]].append(stroka[1])
- graf[stroka[1]].append(stroka[0]) #создала матрицу смежности
- visited=[False]*(n+1) #отмечаю посещенные вершины
- k=0
- q=[]
- def dfs(v):
- visited[v]=True
- if v!=0:
- q.append(v) #составляю список из посещенных вершин
- for w in graf[v]:
- if visited[w]==False:
- dfs(w)
- aaa=[0]
- for v in range(1,n+1):
- if not visited[v]:
- dfs(v)
- k=k+1
- q.sort()
- aaa.append(q)
- q=[]
- print(k)
- for i in aaa:
- if i!=0:
- print(len(i))
- print(*i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement