#CF1137B. Camp Schedule

Camp Schedule

Camp Schedule

  • 时间限制:2 秒
  • 内存限制:512 MiB

题目描述

全国知名的 Spring Programming Camp 即将开营。营期日程可以表示为一个二进制字符串,其中第 ii 天为 1 表示学生参加比赛,为 0 表示休息。

现有日程为 ss。Gleb 认为字符串 tt 所表示的安排最有成效,因此希望重新排列 ss 中的字符,使 tt 作为连续子串出现的次数尽可能多。重新排列后,比赛日与休息日的数量都不能改变。

请输出任意一种满足上述要求的日程。

输入格式

第一行包含一个二进制字符串 ss

第二行包含一个二进制字符串 tt

输出格式

输出一个二进制字符串。它必须恰好是 ss 的一个排列,并且应使 tt 作为连续子串出现的次数最大。

如果有多种最优方案,输出任意一种即可。

样例输入 1

101101
110

样例输出 1

110110

样例输入 2

10010110
100011

样例输出 2

01100011

样例输入 3

10
11100

样例输出 3

01

数据范围

对于所有测试数据,1s,t5000001\le |s|,|t|\le 500\,000,且 s,ts,t 仅由字符 01 组成。

子任务编号 分值 特殊限制
1 20 s10\lvert s\rvert\le 10t10\lvert t\rvert\le 10
2 40 s180\lvert s\rvert\le 180t180\lvert t\rvert\le 180
3 无特殊限制

提示

在样例 1 中,tt 从第 11 位和第 44 位开始出现,共出现两次。

在样例 2 中,tt 只出现一次。答案不唯一,例如可以把输出中的第一个 0 移到末尾。

在样例 3 中,无论如何排列都无法使 tt 出现一次。