#P15736. 断开长串
断开长串
题目描述
调试员柯林拿到一个只包含 0、1 和 ? 的字符串 。其中问号的数量恰好为 。
你需要把其中 个问号替换为 0,把 个问号替换为 1,得到一个二进制字符串 。
令 表示 中最长的、由相同数字组成的连续子串长度。例如,11111 和 0000 都是由相同数字组成的连续子串。
你的目标是最小化 ,并输出任意一个达到最优值的字符串。
输入格式
第一行包含一个整数 ,表示测试用例数量。
对于每个测试用例:
第一行包含三个整数 。
第二行包含一个长度为 的字符串 ,只由字符 0、1、? 组成。保证 中问号的数量等于 。
输出格式
对于每个测试用例,输出两行。
第一行输出一个整数,表示最小可能的 。
第二行输出一个达到该值的字符串 。如果有多种答案,输出任意一种。
数据范围
- ;
- ;
- ;
- ;
- 所有测试用例的 之和不超过 。
样例 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
0101010
10
0000000000
3
11001110100
4
110111101111001