Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input())
- ids = dict()
- adj = [ ]
- order = [ ]
- def read_node_name():
- name = input()
- if not name in ids:
- ids[name] = len(ids)
- adj.append( [] )
- return name
- for i in range(n):
- name = read_node_name()
- order.append(ids[name])
- k = int(input())
- for j in range(k):
- adj_name = read_node_name()
- adj[ ids[name] ].append( ids[adj_name] )
- input()
- def loop_exist(x, visited, start):
- if visited[x]:
- return x == start
- visited[x] = True
- result = False
- for v in adj[x]:
- result = result or loop_exist(v, visited, start)
- return result
- for i in order:
- visited = [False] * n
- print("YES" if loop_exist(i, visited, i) else "NO")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement