30 lines
719 B
Python
30 lines
719 B
Python
VERBOSE = True
|
|
def verbose(s = "", **kwargs):
|
|
if VERBOSE:
|
|
print(s, **kwargs)
|
|
|
|
def get_input(sample = False, part = 1):
|
|
with open(f'sample_p{part}' if sample else 'input', 'r') as f:
|
|
return list(map(lambda x: int(x), f.readlines()[0].split(',')))
|
|
|
|
|
|
def result(inp, part = 1):
|
|
res = -1
|
|
|
|
for mid in range(min(inp), max(inp) + 1):
|
|
score = 0
|
|
for n in inp:
|
|
delta = abs(mid - n)
|
|
if part == 1:
|
|
score += delta
|
|
else:
|
|
score += delta * (delta + 1) / 2
|
|
res = score if score < res or res == -1 else res
|
|
|
|
return res
|
|
|
|
|
|
if __name__ == "__main__":
|
|
VERBOSE = False
|
|
print(result(get_input(), part = 2))
|