#P13304. [2025年队测]Divide the String

[2025年队测]Divide the String

Description

给定两个二进制字符串 sstt。二进制字符串指仅由 01 组成的字符串。

c0(s)c_0(s) 表示字符串 ss 中字符 0 的个数,c1(s)c_1(s) 表示字符 1 的个数。显然,c0(s)+c1(s)=sc_0(s)+c_1(s)=|s|

小青鱼想将字符串 ss 划分为 k=tk=|t| 个连续子串 σ1,σ2,,σk\sigma_1,\sigma_2,\ldots,\sigma_k,即

s=σ1+σ2++σk.s = \sigma_1 + \sigma_2 + \cdots + \sigma_k.

对于每个 ii (1ik1 \le i \le k),需要满足:

  • ti=0t_i = 0,则 c0(σi)>c1(σi)c_0(\sigma_i) > c_1(\sigma_i)
  • ti=1t_i = 1,则 c0(σi)<c1(σi)c_0(\sigma_i) < c_1(\sigma_i)

请判断是否存在一种划分方式满足以上条件;若存在,输出任意一种方案。


Format

Input

  • 第一行包含一个字符串 ss1s1061 \le |s| \le 10^6);
  • 第二行包含一个字符串 tt1ts1 \le |t| \le |s|)。

Output

  • 若无解,输出一行 "No"

  • 若有解,第一行输出 "Yes",第二行输出一个长度为 s|s| 的二进制字符串 AA,其中第 ii 位为:

    • 若在第 ii 与第 i+1i+1 个字符之间划分子串,则 Ai=1A_i = 1
    • 否则 Ai=0A_i = 0
    • 特别地,As=1A_{|s|} = 1

Samples

1001
0
No
111
1
Yes
001
011011010011101
110111
Yes
000011000110011
序号 限制 分值
1 s500|s| \leq 500 30
4 s5000|s|\leq 5000
3 s106|s| \leq 10^6 40