⌨️

[AtCoder]ABC-337|C - Lining Up 2

2024/05/07に公開

設問ページ

提出結果

def getInt():
    return int(input())


def getIntList():
    return list(map(int, input().split()))


def main():
    n = getInt()
    a = getIntList()

    if n == 1:
        print('1')
    else:
        d = dict()
        s = 0
        for i in range(n):
            if a[i] == -1:
                s = i + 1
            else:
                d[a[i]] = i + 1

        c = [s]
        while True:
            s = d[s]
            c.append(s)
            if len(c) == n:
                break

        print(" ".join(map(str, c)))


if __name__ == "__main__":
    main()

Discussion