ns = [int(n) for n in text.split(',')] | |||||
lo, *_, hi = sorted(ns) | |||||
def mono_min(g): | |||||
y = next(g) | |||||
for x in g: | |||||
if x > y: return y | |||||
y = x | |||||
ans1 = mono_min(sum(abs(n - m) for m in ns) for n in range(lo, hi)) | |||||
range_sum = lambda n: int(n * (n + 1) / 2) | |||||
ans2 = mono_min(sum(range_sum(abs(n - m)) for m in ns) for n in range(lo, hi)) |