35 lines
741 B
Python
35 lines
741 B
Python
import lib
|
|
data = open(0).read().strip()
|
|
|
|
part_1 = True
|
|
def maximize(tspr, score, ks):
|
|
if ks == [] or tspr == 0:
|
|
r = 1
|
|
for s in score[:-1]:
|
|
if s < 0:
|
|
return 0
|
|
r *= s
|
|
if part_1:
|
|
return r
|
|
elif score[-1] == 500:
|
|
return r
|
|
else:
|
|
return 0
|
|
|
|
m = 0
|
|
for tsp in range(tspr + 1):
|
|
dscore = [v * tsp for v in ks[0]]
|
|
nscore = list(map(sum, zip(score, dscore)))
|
|
nm = maximize(tspr - tsp, nscore, ks[1:])
|
|
m = max(m, nm)
|
|
return m
|
|
|
|
ks = []
|
|
for line in data.splitlines():
|
|
k = lib.str_to_ints(line)
|
|
ks.append(k)
|
|
|
|
score = [0 for _ in range(len(ks[0]))]
|
|
print(maximize(100, score, ks))
|
|
|