Поиск в глубину

Дан неориентированный граф, возможно, с петлями и кратными ребрами. Необходимо построить компоненту связности, содержащую вершину с номером 1.

Петля в графе - это ребро, которое соединяет вершину с самой собой. Кратные рёбра в графе - это ребра, которые соединяют одну и ту же пару вершин.

Компонента связности в неориентированном графе - это подмножество вершин, таких что все вершины достижимы друг из друга.

Формат ввода В первой строке записаны два целых числа N - количество вершин и M - количество ребер графа

M строках перечислены ребра — пары чисел, определяющие номера вершин, которые соединяют ребра. Далее может идти произвольное количество пустых строк.

Формат вывода В первую строку выходного файла выведите число K — количество вершин в компоненте связности. Во вторую строку выведите K целых чисел — вершины компоненты связности, перечисленные в порядке возрастания номеров.

Решение

def dfs(v, graph, visited, component):
    
    visited.add(v)
    component.append(v)  
    
    for neighbor in graph[v]:
        if neighbor not in visited:
            dfs(neighbor, graph, visited, component)

def main():
    from collections import defaultdict
    
    
    points, edges = map(int, input().strip().split())
    
   
    graph = defaultdict(list)
    
   
    for i in range(edges):
        p, q = map(int, input().strip().split())
        graph[p].append(q)
        graph[q].append(p)  

    visited = set()  
    components = []  

    
    for v in range(1, points + 1):
        if v not in visited:  
            component = []
            dfs(v, graph, visited, component)
            if component:  
                components.append(component)

    
    if len(components) > 0 and len(components[0]) > 0:
        component = sorted(components[0])  
        print(len(component))  
        print(' '.join(map(str, component)))  

if __name__ == "__main__":
    main()

Однако при проверке решения почему - то ошибка исполнения введите сюда описание изображения

Когда ввожу данные вручную считает нормально. Подскажите, пожалуйста, в чём ошибка?


Ответы (0 шт):