#CF2048C. 凯文和二进制串

凯文和二进制串

C. Kevin 和二进制串

时间限制:2 秒
内存限制:256 MB

Kevin 在月光河公园的河边发现了一个11 开头的二进制串 ss,并把它交给了你。你需要选择 ss两个非空子串(可以重叠),使得这两个子串代表的二进制数的 XOR 值最大

两个二进制串 aabb 的 XOR 定义为:把 a,ba,b 看成二进制整数(最左边是最高位),对这两个整数做按位异或(\oplus 运算的值。 你选出的串可以包含前导零。

\ast 字符串 aabb 的子串,当且仅当 aa 可以由 bb 删除开头若干个(可零)、结尾若干个(可零)字符得到。

输入

每个测试点包含多组数据。 第一行一个整数 tt1t1031\le t\le 10^3),表示测试用例数量。

每组数据一行,一个11 开头的二进制串 ss1s50001\le |s|\le 5000)。 保证所有测试用例的 s|s| 之和不超过 50005000

输出

对于每组数据,输出四个整数: l1,r1,l2,r2l_1, r_1, l_2, r_2 满足 1l1r1s, 1l2r2s1\le l_1\le r_1\le |s|,\ 1\le l_2\le r_2\le |s|,表示你选出的两个子串。

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

样例输入

5
111
1000
10111
11101
1100010001101

样例输出

2 2 1 3
1 3 1 4
1 5 1 4
3 4 1 5
1 13 1 11

说明

  • 第一个样例:选子串 s2=1s_2=1s1s2s3=111s_1s_2s_3=1111111=1101\oplus 111=110,可以证明是最大。
  • 第二个样例:选 100100100010001001000=1100100\oplus 1000=1100,为最优。