AT_apc001_g Colorful Doors

题目描述

有一座连接左岸和右岸的桥。桥上的 $2N$ 个不同的位置分别放置着一种颜色的门。每个门的颜色用 $1$ 到 $N$ 之间的整数表示。对于每一个 $k$($1 \leq k \leq N$),颜色为 $k$ 的门恰好有两个。 すぬけ君打算从左岸走到右岸。他总是向右行走,在行走过程中会发生如下现象: - 当すぬけ君触碰到颜色为 $k$($1 \leq k \leq N$)的门时,他会立即传送到另一扇颜色为 $k$ 的门的右边(即紧挨着那扇门的右侧)。 可以证明,すぬけ君最终一定可以到达右岸。 对于每一个 $i$($1 \leq i \leq 2N-1$),我们把从左起第 $i$ 个门和第 $i+1$ 个门之间的区间称作区间 $i$。すぬけ君渡桥结束后,他对每个 $i$($1 \leq i \leq 2N-1$)记录了自己是否经过了区间 $i$。这个记录以长度为 $2N-1$ 的字符串 $s$ 形式给出。对于每一个 $i$($1 \leq i \leq 2N-1$),如果すぬけ君走过了区间 $i$,则 $s$ 的第 $i$ 位为 `1`,否则为 `0`。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_apc001_g/382d80e27f27c219051337ea977a9f0803e973e4.png) 图:对应于输入样例 3 的门的分布示意图 请判断是否存在一种与记录不矛盾的门的分布,如果存在,请给出一种分布方案。

输入格式

输入从标准输入中读入,格式如下: > $N$ $s$

输出格式

如果不存在与记录不矛盾的门的分布,输出 `No`。如果存在,输出 `Yes`,然后在第二行输出一种门的分布。对于每个 $i$($1 \leq i \leq 2N$),$c_i$ 表示从左到右第 $i$ 个门的颜色。 > $c_1$ $c_2$ $\dots$ $c_{2N}$

说明/提示

### 限制条件 - $1 \leq N \leq 10^5$ - $|s| = 2N-1$ - $s$ 只包含字符 `0` 和 `1` ### 样例解释 3 以下的图与题目正文中一致。![示意图](https://img.atcoder.jp/cookie/970b981380ffad7745008433034c0885.png) 由 ChatGPT 5 翻译