CodeForces-2048C Kevin and Binary Strings
Table of Contents
CodeForces-2048C Kevin and Binary Strings #
Solution 1 #
其中一个字符串必须取 $s$ , 否则怎么异或最高位都不如 $s$ 异或一个短一些的字符串来的大. 寻找 $s$ 最左侧的一个 $0$ , 枚举把这一位异或成 $1$ 的字符串.
代码如下:
if __name__ == '__main__':
t = int(input())
while t > 0:
t -= 1
s = input()
x = int(s, 2)
n = len(s)
idx = s.find('0')
if idx == -1:
print(f'{1} {n} {1} {1}')
else:
m = n - idx
res, l, r = 0, -1, -1
for i in range(idx):
y = int(s[i: i + m], 2)
y ^= x
if y > res:
res = y
l, r = i, i + m - 1
print(f'{1} {n} {l + 1} {r + 1}')