|
|
|
|
|
|
|
|
|
|
|
from functools import reduce |
|
|
|
|
|
from itertools import permutations |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
text = open(0).read() |
|
|
|
|
|
inp = [eval(line) for line in text.splitlines()] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def explode(state): |
|
|
|
|
|
last = None |
|
|
|
|
|
carry = None |
|
|
|
|
|
def mut(parent, idx, depth=1): |
|
|
|
|
|
nonlocal last, carry |
|
|
|
|
|
if type(parent[idx]) == int: |
|
|
|
|
|
last = parent, idx |
|
|
|
|
|
if carry: |
|
|
|
|
|
parent[idx] += carry |
|
|
|
|
|
raise RuntimeError |
|
|
|
|
|
elif carry is None and depth == 4: |
|
|
|
|
|
x, y = parent[idx] |
|
|
|
|
|
if last: |
|
|
|
|
|
p, j = last |
|
|
|
|
|
p[j] += x |
|
|
|
|
|
carry = y |
|
|
|
|
|
parent[idx] = 0 |
|
|
|
|
|
else: |
|
|
|
|
|
mut(parent[idx], 0, depth + 1) |
|
|
|
|
|
mut(parent[idx], 1, depth + 1) |
|
|
|
|
|
try: |
|
|
|
|
|
mut(state, 0) |
|
|
|
|
|
mut(state, 1) |
|
|
|
|
|
except RuntimeError: |
|
|
|
|
|
pass |
|
|
|
|
|
return carry is not None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def split(state): |
|
|
|
|
|
def mut(par, idx): |
|
|
|
|
|
if type(par[idx]) == int: |
|
|
|
|
|
N = int(par[idx]) |
|
|
|
|
|
if N >= 10: |
|
|
|
|
|
par[idx] = [N // 2, N // 2 + (N & 1)] |
|
|
|
|
|
raise RuntimeError |
|
|
|
|
|
else: |
|
|
|
|
|
mut(par[idx], 0) |
|
|
|
|
|
mut(par[idx], 1) |
|
|
|
|
|
try: |
|
|
|
|
|
mut(state, 0) |
|
|
|
|
|
mut(state, 1) |
|
|
|
|
|
except RuntimeError: |
|
|
|
|
|
return True |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def add(a, b): |
|
|
|
|
|
state = eval(str([a, b])) |
|
|
|
|
|
while True: |
|
|
|
|
|
if explode(state): |
|
|
|
|
|
continue |
|
|
|
|
|
elif split(state): |
|
|
|
|
|
continue |
|
|
|
|
|
else: |
|
|
|
|
|
break |
|
|
|
|
|
return state |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def magnitude(seq): |
|
|
|
|
|
if type(seq) == int: |
|
|
|
|
|
return seq |
|
|
|
|
|
x, y = seq |
|
|
|
|
|
return 3 * magnitude(x) + 2 * magnitude(y) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print(magnitude(reduce(add, inp))) |
|
|
|
|
|
print(max(magnitude(add(*pair)) for pair in permutations(inp, 2))) |