from kata_193 import topological_order

def prerequisite_queries(adj, queries):
    order = topological_order(adj)
    if len(order) != len(adj):
        raise ValueError('graph must be acyclic')
    ancestors = [set() for _ in adj]
    for u in order:
        for v in adj[u]:
            ancestors[v].update(ancestors[u])
            ancestors[v].add(u)
    return [u in ancestors[v] for u, v in queries]
