Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- nm = [int(x) for x in input().split(" ")]
- num_sites = nm[0]
- num_edges = nm[1]
- graph = [] #adjacency matrix
- graph2 = {} #adjacency list
- edges = [] #list of edges
- all_sites = list(range(0, num_sites))
- for _ in range (num_sites):
- graph.append([0] * num_sites)
- graph2[_] = []
- for _ in range(num_edges):
- pair = [int(x) for x in input().split(" ")]
- graph[pair[0]][pair[1]] = 1
- graph[pair[1]][pair[0]] = 1
- graph2[pair[0]].append(pair[1])
- graph2[pair[1]].append(pair[0])
- edges.append((pair[0], pair[1]))
- def solve(all_sites, index, included_sites, results):
- if index >= len(all_sites):
- results.append(included_sites)
- return 0
- new_included_sites = included_sites[:]
- new_included_sites.append(all_sites[index])
- solve(all_sites, index + 1, new_included_sites, results)
- solve(all_sites, index + 1, included_sites, results)
- return 0
- def check(included_sites, edges):
- #print(included_sites)
- for edge in edges:
- if edge[0] not in included_sites and edge[1] not in included_sites:
- return False
- return True
- index = 0
- results = []
- solve(all_sites, index, [], results)
- results = [x for x in results if check(x, edges)]
- #print(edges)
- print(min([len(x) for x in results]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement