Logo Universal Online Judge

UOJ

时间限制:2 s 空间限制:1024 MB
Statistics

问题描述
给定一个长度为 n 的字符串 t,只包含 0,1,?,你需要把 a 个 ? 替换为 0,b 个 ? 替换为 1,保 证 ? 个数为 a + b。
对于一个 01 串 s,定义 f(s) 为最长的连续的相同字符的长度。你需要最小化 f(t) 并构造方案。
输入格式
输入有多组数据,第一行一个整数 T,表示数据组数。
对于每组数据,第一行三个整数 n, a, b,第二行一个字符串 t,含义如题面所示。
输出格式
对于每组数据,输出两行,第一行一个整数,表示答案,第二行一个 01 串表示你构造的方案,若 有多种最小化方案你只需要输出任意一种。
样例 1 输入

4
7 1 2
0?01??0
10 5 0
?000??0?0?
11 0 0
11001110100
15 2 4
?1?11?1??11100?
样例 1 输出

1
0101010
10
0000000000
3
11001110100
4
110111101111001
数据规模与约定 记 s 为所有数据中的 n 之和。对于所有数据 T ≤ 105, 1 ≤ n ≤ 250000, s ≤ 250000。 12png.png