#C2026XSR3A. 替换(replace)

替换(replace)

替换(replace)

题目描述

苗苗正在整理一串二进制记录。记录只由字符 0 和 1 组成。

现在苗苗需要选择一个既不是开头、也不是结尾的位置,把这一位替换成异或符号 ⊕。替换之后,符号左边和右边都会被看作二进制整数,苗苗会计算这两个整数的按位异或结果。

苗苗希望让这个结果尽可能大。请你输出最大结果的二进制表示。

注意,输出不能含有前导零;如果最大结果为 00,请输出 0。

输入格式

从文件 replace.in 中读入数据。

第一行一个整数 TT,表示测试数据组数。

接下来 TT 行,每行一个长度至少为 33 的二进制串 ss。

输出格式

输出到文件 replace.out 中。

对于每组测试数据,输出一行一个二进制串,表示最大结果。

输入输出样例 #1

输入 #1

8
010
0110
1000
10101
01000
01010
010110
00000

输出 #1

0
10
10
100
10
11
111
0

说明/提示

对于样例中的 10101,可以把第 22 位、第 33 位或第 44 位替换成 ⊕:

  • 1 ⊕ 101 = 100;
  • 10 ⊕ 01 = 11;
  • 101 ⊕ 1 = 100。

因此最大结果为 100。

设每组测试数据中字符串 ss 的长度为 nn。

对于全部数据,满足:

  • 1≤T≤1051\le T\le 10^5;
  • 3≤n3\le n;
  • ss 仅由字符 0 和 1 组成;
  • 所有测试数据中 nn 的总和不超过 5×1055\times 10^5。
测试点编号 nn 的限制 特殊性质
1∼21\sim 2 ∀n≤20\forall n\le 20 无
3∼53\sim 5 ∑n≤3000\sum n\le 3000
66 ∑n≤5×105\sum n\le 5\times 10^5 所有字符串均以字符 1 开头
77 所有字符串均以字符 0 开头
8∼108\sim 10 无

样例文件