···11+import fileinput
22+33+44+part_1 = 0
55+part_2 = 0
66+77+for line in fileinput.input():
88+ row = [int(x) for x in line.split()]
99+1010+ # Build up triangle.
1111+ triangle = [row[:]]
1212+1313+ while any(n != 0 for n in triangle[-1]):
1414+ row = []
1515+ for a, b in zip(triangle[-1], triangle[-1][1:]):
1616+ row.append(b - a)
1717+1818+ triangle.append(row)
1919+2020+ triangle.reverse()
2121+2222+ # Extrapolate right column.
2323+ right = [0]
2424+ for *_, n in triangle[1:]:
2525+ right.append(right[-1] + n)
2626+2727+ part_1 += right[-1]
2828+2929+ # Extrapolate left column.
3030+ left = [0]
3131+ for n, *_ in triangle[1:]:
3232+ left.append(n - left[-1])
3333+3434+ part_2 += left[-1]
3535+3636+3737+print("Part 1:", part_1)
3838+print("Part 2:", part_2)
3939+