-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.py
More file actions
24 lines (19 loc) · 716 Bytes
/
Copy pathscript.py
File metadata and controls
24 lines (19 loc) · 716 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys
import functools
if __name__ == '__main__':
inputs = (line.rstrip('\n') for line in open(sys.argv[1]))
total_paper = 0
total_ribbon = 0
for i in inputs:
sides = [int(s) for s in i.split('x')]
areas = [2*sides[0]*sides[1], 2*sides[1]*sides[2], 2*sides[2]*sides[0]]
paper = sum(areas) + min(areas)//2
# print(f'{i} -> {areas} -> {sum(areas)} + {min(areas)//2} = {paper}')
total_paper += paper
short_sides = sorted(sides)[:2]
wrap = short_sides[0]*2 + short_sides[1]*2
bow = functools.reduce(lambda x, y: x*y, sides)
ribbon = wrap + bow
total_ribbon += ribbon
print(total_paper)
print(total_ribbon)