Untitled

 avatar
unknown
plain_text
2 years ago
785 B
7
Indexable
def solve(inp):
    data = inp.split(';')
    n = int(data[0])
    hierarchy = {}
    for i in range(1, n + 1):
        pair = data[i].split(' : ')
        if len(pair) == 1:
            pair.append(None)
        hierarchy[pair[0]] = pair[1]
    m = int(data[n + 1])
    exceptions = data[n + 2:]

    alrdy_caught = set()
    answer = []
    for k in range(m):
        exc = exceptions[k]
        parents = []
        parent = hierarchy[exc]
        while parent is not None:
            parents.append(parent)
            parent = hierarchy[parent]

        if len(alrdy_caught.intersection(parents)) > 0:
            answer.append(exc)

        for p in parents:
            alrdy_caught.add(p)
        alrdy_caught.add(exc)
    return ','.join(answer)
Editor is loading...