CF286C Main Sequence

题目描述

如你所知,Vova 最近成为了 Ultima Thule 城市的新萨满。因此,他获得了关于合法括号序列的萨满知识。Ultima Thule 的萨满们自史前时代起就一直在使用多种类型的括号。括号类型是一个正整数。萨满们定义合法括号序列如下: - 空序列是一个合法括号序列。 - 如果 ${a_{1},a_{2},...,a_{l}}$ 和 ${b_{1},b_{2},...,b_{k}}$ 是合法括号序列,那么它们的连接序列 ${a_{1},a_{2},...,a_{l},b_{1},b_{2},...,b_{k}}$ 也是合法括号序列。 - 如果 ${a_{1},a_{2},...,a_{l}}$ 是合法括号序列,那么序列 $[v, a_{1},a_{2},...,a_{l}, -v]$ 也是合法括号序列,其中 $v\ (v>0)$ 是一个整数。 例如,序列 ${1,1,-1,2,-2,-1}$ 和 ${3,-3}$ 是合法括号序列,而 ${2,-3}$ 不是。 此外,在成为萨满后,Vova 学到了最重要的合法括号序列 ${x_{1},x_{2},...,x_{n}}$,它包含 $n$ 个整数。因为序列 $x$ 很重要,Vova 决定将其加密以防万一。 加密后的结果由两个序列组成。第一个序列 ${p_{1},p_{2},...,p_{n}}$ 包含括号的类型,即 $p_{i}=|x_{i}|$($1 \leq i \leq n$)。第二个序列 ${q_{1},q_{2},...,q_{t}}$ 包含 $t$ 个整数——某些位置(可能不是全部),这些位置在序列 ${x_{1},x_{2},...,x_{n}}$ 中为负数。 不幸的是,Vova 忘记了原始序列。但幸运的是,他保留了加密结果:序列 ${p_{1},p_{2},...,p_{n}}$ 和 ${q_{1},q_{2},...,q_{t}}$。请你帮助 Vova 根据加密信息还原序列 $x$。如果有多个满足条件的序列,输出任意一个。如果不存在这样的序列,请输出相应信息。

输入格式

第一行输入一个整数 $n$($1 \leq n \leq 10^{6}$)。 第二行输入 $n$ 个整数 $p_{1},p_{2},...,p_{n}$($1 \leq p_{i} \leq 10^{9}$)。 第三行输入一个整数 $t$($0 \leq t \leq n$),随后是 $t$ 个不同的整数 $q_{1},q_{2},...,q_{t}$($1 \leq q_{i} \leq n$)。 每行的数字均以空格分隔。

输出格式

如果不存在满足要求的序列 ${x_{1},x_{2},...,x_{n}}$,请输出单独一行 "NO"(不带引号)。 否则,第一行输出 "YES"(不带引号),第二行输出 $n$ 个整数 $x_{1},x_{2},...,x_{n}$($|x_{i}|=p_{i}$ 且 $x_{q_j}

说明/提示

由 ChatGPT 5 翻译