#P13826. [apc001]Colorful Doors

[apc001]Colorful Doors

题目描述

有一座连接左岸和右岸的桥。桥上的 2N2N 个不同的位置分别放置着一种颜色的门。每个门的颜色用 11NN 之间的整数表示。对于每一个 kk1kN1 \leq k \leq N),颜色为 kk 的门恰好有两个。

すぬけ君打算从左岸走到右岸。他总是向右行走,在行走过程中会发生如下现象:

  • 当すぬけ君触碰到颜色为 kk1kN1 \leq k \leq N)的门时,他会立即传送到另一扇颜色为 kk 的门的右边(即紧挨着那扇门的右侧)。

可以证明,すぬけ君最终一定可以到达右岸。

对于每一个 ii1i2N11 \leq i \leq 2N-1),我们把从左起第 ii 个门和第 i+1i+1 个门之间的区间称作区间 ii。すぬけ君渡桥结束后,他对每个 ii1i2N11 \leq i \leq 2N-1)记录了自己是否经过了区间 ii。这个记录以长度为 2N12N-1 的字符串 ss 形式给出。对于每一个 ii1i2N11 \leq i \leq 2N-1),如果すぬけ君走过了区间 ii,则 ss 的第 ii 位为 1,否则为 0

图:对应于输入样例 3 的门的分布示意图

请判断是否存在一种与记录不矛盾的门的分布,如果存在,请给出一种分布方案。

输入格式

输入从标准输入中读入,格式如下:

NN ss

输出格式

如果不存在与记录不矛盾的门的分布,输出 No。如果存在,输出 Yes,然后在第二行输出一种门的分布。对于每个 ii1i2N1 \leq i \leq 2N),cic_i 表示从左到右第 ii 个门的颜色。

c1c_1 c2c_2 \dots c2Nc_{2N}

输入输出样例 #1

输入 #1

2
010

输出 #1

Yes
1 1 2 2

输入输出样例 #2

输入 #2

2
001

输出 #2

No

输入输出样例 #3

输入 #3

3
10110

输出 #3

Yes
1 3 2 1 2 3

输入输出样例 #4

输入 #4

3
10101

输出 #4

No

输入输出样例 #5

输入 #5

6
00111011100

输出 #5

Yes
1 6 1 2 3 4 4 2 3 5 6 5

说明/提示

限制条件

  • 1N1051 \leq N \leq 10^5
  • s=2N1|s| = 2N-1
  • ss 只包含字符 01

样例解释 3

以下的图与题目正文中一致。