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 翻译