43 lines
803 B
Python
43 lines
803 B
Python
def step(a: str) -> str:
|
|
b = "".join(["1" if c == "0" else "0" for c in reversed(a)])
|
|
return a + "0" + b
|
|
|
|
|
|
def fill(a: str, n: int) -> str:
|
|
while len(a) < n:
|
|
a = step(a)
|
|
return a[:n]
|
|
|
|
|
|
def checksum(a: str) -> str:
|
|
while len(a) % 2 == 0:
|
|
xs = []
|
|
for i in range(0, len(a), 2):
|
|
if a[i] == a[i + 1]:
|
|
xs.append("1")
|
|
else:
|
|
xs.append("0")
|
|
a = "".join(xs)
|
|
return a
|
|
|
|
|
|
def solve():
|
|
assert step("1") == "100"
|
|
assert step("0") == "001"
|
|
assert step("11111") == "11111000000"
|
|
|
|
with open("i16.txt") as f:
|
|
d = f.read().strip()
|
|
|
|
a = fill(d, 272)
|
|
b = checksum(a)
|
|
print(b)
|
|
|
|
a = fill(d, 35651584)
|
|
b = checksum(a)
|
|
print(b)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
solve()
|