30 lines
619 B
Python
30 lines
619 B
Python
|
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()}")
|