Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_children(graph,v):
- return {i for i in range(len(graph[v])) if graph[v][i] == 1}
- def dfs(graph ,v, visited = set()):
- visited.add(v)
- for u in get_children(graph,v) - visited:
- dfs(graph,u,visited)
- return visited
- n,k = map(int, input().split())
- g1 = [[0] * n for i in range(n)]
- g2 = [[0] * n for i in range(n)]
- for i in range(k):
- oper, a,b = input().split()
- a = int(a) -1
- b = int(b) - 1
- if oper == '+':
- g1[a][b] = 1
- g1[b][a] = 1
- g2[a][b] = 1
- g2[b][a] = 1
- elif oper == '-':
- g1[a][b] = 1
- g1[b][a] = 1
- g2[a][b] = 0
- g2[b][a] = 0
- else:
- dfs1 = dfs(g1,a)
- dfs2 = dfs(g2,a)
- if a in dfs1 and b in dfs1:
- if a in dfs2 and b in dfs2:
- print('-')
- else:
- print('+')
- else:
- print('?')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement