⌨️

[AtCoder]ABC-425|B - Find Permutation 2

に公開

設問ページ

提出結果

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


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


def main():
    N = getInt()
    A = [0] + getIntList()

    B = [a for a in A if a > 0]

    result = True
    for b in B:
        if B.count(b) > 1 or b > N:
            result = False
            break
    if not result:
        print("No")
    else:
        C = [i for i in range(1, N + 1) if i not in B]

        j = 0
        for i in range(1, N + 1):
            if A[i] in B:
                continue
            else:
                A[i] = C[j]
                j += 1
        print("Yes")
        print(" ".join(map(str, A[1:])))


if __name__ == "__main__":
    main()

Discussion