该程序没有通过测试...在输出文件的第一行打印连接组件的数量。然后打印 N 个整数,其中第 i 个指定第 i 个顶点的连通分量的数量。组件应使用从 1 开始的连续整数编号。组件的编号顺序是任意的。
输入格式:
4 2
12
3 4
输出格式:
2
1 1 2 2
from sys import stdin
input = stdin.readline
n, m = map(int, input().split())
graph = [[] for _ in range(n)]
for i in range(m):
u, v = [int(i)-1 for i in input().split()]
graph[u].append(v)
graph[v].append(u)
visited = [False] * n
answer = 0
components = []
for i in range(n):
if visited[i]:
continue
answer+=1
visited[i] = True
queue = [i]
component = []
while queue:
v = queue.pop()
component.append(v+1)
for to in graph[v]:
if not visited[to]:
visited[to] = True
queue.append(to)
components.append(component)
print(answer)
l =0
for i in range(answer):
l+=1
for k in range (len(components[i])):
print(l, end = " ")