fork(1) download
  1. n, m = [int(_) for _ in input().split()]
  2. susedia = [ [] for _ in range(n) ] #zoznam susedov pre kazdy vrchol
  3. for _ in range(m):
  4. #spracovanie jednej hrany
  5. x, y = [int(_)-1 for _ in input().split()] #ocislujeme od nuly
  6. # print(x, y)
  7. #pridame susedov k obom vrcholom
  8. susedia[x].append(y)
  9. susedia[y].append(x)
  10. print(*susedia)
  11.  
  12. def komponent(v): #vrati zoznam vrcholov v komponente obsahujucom vrchol v
  13. komp = [v] #vrcholy v komponente
  14. zostava = [v] #vrcholy, ktore treba spracovat
  15. while len(zostava) > 0:
  16. i = zostava[0] #vyberieme jeden vrchol
  17. zostava = zostava[1:]
  18. #prejdeme vsetkych susedov vrchola i a pridame, ak este nie su
  19. for j in susedia[i]: #j=sused vrchola i
  20. if not j in komp:
  21. komp.append(j) #pridame do komponentu
  22. zostava.append(j) #pridame k zoznamu vrcholov, kt.este treba spracovat
  23.  
  24.  
  25. return komp
  26.  
  27. print(komponent(5))
  28. print(komponent(10))
Success #stdin #stdout 0.01s 27712KB
stdin
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
stdout
[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]