Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. nm = [int(x) for x in input().split(" ")]
  2. num_sites = nm[0]
  3. num_edges = nm[1]
  4.  
  5. graph = [] #adjacency matrix
  6. graph2 = {} #adjacency list
  7. edges = [] #list of edges
  8. all_sites = list(range(0, num_sites))
  9.  
  10. for _ in range (num_sites):
  11. graph.append([0] * num_sites)
  12. graph2[_] = []
  13.  
  14. for _ in range(num_edges):
  15. pair = [int(x) for x in input().split(" ")]
  16. graph[pair[0]][pair[1]] = 1
  17. graph[pair[1]][pair[0]] = 1
  18. graph2[pair[0]].append(pair[1])
  19. graph2[pair[1]].append(pair[0])
  20. edges.append((pair[0], pair[1]))
  21.  
  22. def solve(all_sites, index, included_sites, results):
  23. if index >= len(all_sites):
  24. results.append(included_sites)
  25. return 0
  26.  
  27. new_included_sites = included_sites[:]
  28. new_included_sites.append(all_sites[index])
  29.  
  30.  
  31.  
  32. solve(all_sites, index + 1, new_included_sites, results)
  33. solve(all_sites, index + 1, included_sites, results)
  34.  
  35. return 0
  36.  
  37.  
  38.  
  39.  
  40. def check(included_sites, edges):
  41. #print(included_sites)
  42. for edge in edges:
  43. if edge[0] not in included_sites and edge[1] not in included_sites:
  44. return False
  45. return True
  46.  
  47. index = 0
  48. results = []
  49. solve(all_sites, index, [], results)
  50. results = [x for x in results if check(x, edges)]
  51. #print(edges)
  52. print(min([len(x) for x in results]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement