| 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)) |