AT_abc425_b [ABC425B] Find Permutation 2

题目描述

给定一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\ldots,A_N)$。其中,$A$ 的每个元素要么是 $-1$,要么是 $1$ 到 $N$(包括 $1$ 和 $N$)之间的整数。 判断是否存在一个长度为 $N$ 的整数序列 $P=(P_1,P_2,\ldots,P_N)$,满足以下所有条件,并在存在时给出任意一个 $P$。 - $P$ 是 $1$ 到 $N$ 的一个排列。 - 对于所有 $i=1,2,\ldots,N$,如果 $A_i\neq -1$,则 $P_i=A_i$。

输入格式

输入从标准输入读取,格式如下: > $N$ $A_1$ $A_2$ $\ldots$ $A_N$

输出格式

如果不存在满足条件的 $P$,输出 `No`。 否则,输出两行。第一行 `Yes`,第二行 $P_1~P_2~\ldots~P_N$,其中 $P$ 满足所有条件。 如果有多个满足条件的 $P$,输出其中任意一个。

说明/提示

### 样例解释 1 $P=(3,1,2,4)$ 满足所有条件。 除此之外,$P=(1,3,2,4)$ 或 $P=(4,3,2,1)$ 也满足所有条件。 ### 样例解释 2 不存在满足所有条件的 $P$。 ### 数据范围 - $1\le N\le 10$ - $A_i=-1$ 或 $1\le A_i \le N$ - 所有输入值均为整数。 由 ChatGPT 5 翻译