n, m = [int(_) for _ in input().split()] susedia = [ [] for _ in range(n) ] #zoznam susedov pre kazdy vrchol for _ in range(m): #spracovanie jednej hrany x, y = [int(_)-1 for _ in input().split()] #ocislujeme od nuly # print(x, y) #pridame susedov k obom vrcholom susedia[x].append(y) susedia[y].append(x) print(*susedia) def komponent(v): #vrati zoznam vrcholov v komponente obsahujucom vrchol v komp = [v] #vrcholy v komponente zostava = [v] #vrcholy, ktore treba spracovat while len(zostava) > 0: i = zostava[0] #vyberieme jeden vrchol zostava = zostava[1:] #prejdeme vsetkych susedov vrchola i a pridame, ak este nie su for j in susedia[i]: #j=sused vrchola i if not j in komp: komp.append(j) #pridame do komponentu zostava.append(j) #pridame k zoznamu vrcholov, kt.este treba spracovat return komp print(komponent(5)) print(komponent(10))
14 14 1 2 2 6 2 7 3 5 4 5 4 6 6 7 7 8 8 9 8 10 11 12 11 13 12 14 13 14
[1] [0, 5, 6] [4] [4, 5] [2, 3] [1, 3, 6] [1, 5, 7] [6, 8, 9] [7] [7] [11, 12] [10, 13] [10, 13] [11, 12] [5, 1, 3, 6, 0, 4, 7, 2, 8, 9] [10, 11, 12, 13]