count_components: число компонент связности неориентированного графа
Напишите функцию count_components(n: int, edges: list[tuple[int, int]]) -> int.
Вход. n — количество вершин, пронумерованных от 0 до n - 1. edges — список неориентированных рёбер в виде пар (u, v).
Выход. Количество компонент связности (целое число).
Поведение на краевых входах.
n = 0и пустой список рёбер — вернуть0.- Рёбер нет, а вершин
n— вернутьn(каждая вершина сама себе компонента). - Кратные рёбра допустимы:
(0, 1)и(1, 0)вместе означают то же, что одно ребро. - Петля
(u, u)допустима и на ответ не влияет.
Гарантируется, что все номера вершин в рёбрах лежат в диапазоне от 0 до n - 1.
заготовка решения
def count_components(n: int, edges: list[tuple[int, int]]) -> int:
# ваш код
pass