| @@ -0,0 +1,12 @@ | |||
| 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)) | |||