base = lambda l,w: l*w front = lambda w,h: w*h side = lambda h,l: h*l def paper(l: int, w: int, h: int): base = l*w front = w*h side = h*l sup = min(base, front, side) return 2*base + 2*front + 2*side + sup def paper_from_str(s: str): l, w, h = map(int, s.split('x')) return paper(l, w, h) def test(): assert paper_from_str("2x3x4") == 58 assert paper_from_str("1x1x10") == 43 def solution(): s = 0 with open("in1") as puzzle: for l in puzzle: s += paper_from_str(l) return s if __name__ == "__main__": print(f"Total paper: {solution()}")